Maximum likelihood synchronization for a communications system using a pilot symbol

ABSTRACT

A method and apparatus for detecting and synchronising packets of data with a repeated sequence as a pilot symbol received by a communications system are provided. The method and apparatus include receiving data, detecting a packet within the received data, producing an estimate of the time-varying frequency offset of the received data, estimating the start of the packet of the received data, estimating the time-varying phase offset of the received data and estimating the time-varying time offset of the received data. Methods for assessing each one of the time-varying frequency offset, the time-varying phase offset, the time-varying time offset and the start of packet are also provided.

FIELD OF INVENTION

[0001] The invention relates to a method and system for maximum likelihood synchronisation for a communication system using a repeated sequence with ideal or nearly ideal correlation properties and with constant envelope in both the time and frequency domains as a pilot symbol. The invention also relates to methods for maximum likelihood estimation of channel parameters such as the time, frequency and phase offsets as well as the start of packet.

BACKGROUND

[0002] Future wireless local area networks (WLANs) will use orthogonal frequency division multiplexing (OFDM) as the modulation method. OFDM is well suited to the requirements of localised, broadband communications and has been shown to operate at raw data rates of up to 54 Mbit/s in demonstration conditions.

[0003] To provide error free communication it is necessary for any communications receiver to estimate channel and system induced distortions. A number of methods of estimating these parameters in OFDM systems have previously been proposed (see for example L. J. Cimini, Y Li, “Orthogonal frequency division multiplexing for wireless channels”, Tutorial Presentation, Proc IEEE Globecom '98, November 1998 and T. Keller, L. Hanzo, “Adaptive multicarrier modulation: a convenient framework for time-frequency processing in wireless communications”, Proc IEEE, vol 88, no 5, May 2000, pp 611-640). Methods have been proposed based on pilot symbols and based on null symbols (see for example P. H. Moose, “A technique for orthogonal frequency division multiplexing frequency offset correction”, IEEE Trans. Commun., vol 42, October 1994, pp 2908-2914, J. Aldis, M. P. Altrhoff, R. van Nee “Physical layer architecture and performance in the WAND user trial system”, Proc. ACTS Mobile Summit '96, November 1996, pp 196-203, G. Santella, “A frequency and symbol synchronization system for OFDM signals: architecture and simulation results”, IEEE Trans. Vehic. Technol., vol 49, no 1, January 2000, pp 254-275). Assuming that initial synchronisation has been achieved, methods to track these parameters from OFDM data have also been proposed (see for example H. Steendam, M. Moeneclaey, “Analysis and optimisation of the performance of OFDM on frequency-selective time-selective fading channels”, IEEE Trans. Commun., vol 47, no 12, December 1999, pp 1811-1819). Alternative tracking and/or adaptive channel estimation methods have been proposed which are based on embedded pilot tones (see for example Y. Li, L. J. Cimini Jr., N. R. Sollenberger, “Robust channel estimation for OFDM systems with rapid dispersive fading channels”, IEEE Trans. Commun., vol 46, April 1998, pp 902-915).

[0004] In a communications system the wide-sense stationary uncorrelated scatterers (WSS-US) model of the low pass-equivalent multipath fading channel may be represented by the time-varying impulse response $\begin{matrix} {{c\left( {\tau;t} \right)} = {\sum\limits_{m = 1}^{M{(t)}}{{a_{m}(t)}^{{- j}\quad {\varphi_{m}{(t)}}}{\delta \left\lbrack {\tau - {\tau_{m}(t)}} \right\rbrack}}}} & 1 \end{matrix}$

[0005] which is a function of time-delay τ and time t; where a_(m)(t) is the amplitude, φ_(m)(t)=2πƒ_(C)τ_(m)(t) is the phase of carrier frequency ƒ_(C), and τ_(m)(t) is the time-delay of the mth of M bins or echoes measured at time t. For a narrowband signal, that is one for which the signal bandwidth B is less than the channel coherence bandwidth (Δƒ)_(C), the “flat” fading multipath channel reduces to $\begin{matrix} \begin{matrix} {{c(t)}\overset{.}{=}{c\left( {0;t} \right)}} \\ {= {{a(t)}^{{- j}\quad {\varphi {(t)}}}{\delta \left\lbrack {\tau - {\tau_{0}(t)}} \right\rbrack}}} \end{matrix} & 2 \end{matrix}$

[0006] where a(t) is the amplitude, φ(t) is the phase and τ₀(t) is the excess delay imposed by the multiplicative channel. Note that all the above quantities are time-varying. In a WLAN the channel may be narrowband or may be a frequency-selective multipath fading channel. In frequency-selective multipath channels the simplification of equation (2) does not apply.

[0007] In addition to the channel-induced distortions, frequency differences in the transmitter and receiver RF local oscillators and sample clocks due to component tolerances introduce, respectively, frequency and timing errors. Thus, for a narrowband channel, the received sampled signal may be expressed as $\begin{matrix} {{r^{\delta}({nT})} = {\sum\limits_{n = 0}^{N - 1}{{s(t)}{a(t)}^{- {j{\lbrack{{2\pi \quad {v{(t)}}t} + {\theta {(t)}}}\rbrack}}}{\delta \left\lbrack {t - {nT} - {\tau_{s}(t)}} \right\rbrack}}}} & 3 \end{matrix}$

[0008] where ν(t) is the frequency-, θ(t) is the phase- and τ_(S)(t) is the time-offset induced by the combination of channel and system distortions, n is the index of N samples of received signal s(t) at sample period T and the superscript δ denotes a sampled signal. The time-varying frequency offset ν(t) is a composite of Doppler shift and RF local oscillator offset, the time-varying phase offset θ(t) is the instantaneous snapshot of these composite frequency errors expressed as a time-varying phase difference between the transmitted and received baseband signals, the time-varying time-offset τ_(S)(t) is a composite of the excess delay and sample clock phase offset, and n=0 represents the start-of-packet sample. Each of these parameters requires estimation by the receiver and, since all but n are time-varying quantities, each estimate must be updated through the reception process. These distortions occur for all narrowband channels regardless fo the modulation scheme used to transmit data through the channel.

[0009] A number of methods for estimating these parameters in ODFM systems have been proposed. The proposed methods include methods based on pilot symbols and methods based on null symbols. Assuming that initial synchronisation has been achieved methods for tracking the parameters have also been proposed.

SUMMARY OF INVENTION

[0010] It is the object of the present invention to provide methods for estimating the frequency, phase and time offsets and the start of packet of data received through a communications channel where the methods do not rely on null symbols or pilot tones in the data or to at least provide the public with a useful choice.

[0011] In broad terms in one aspect the invention comprises a method for detecting and synchronising packets of data with a repeated sequence as a pilot symbol received by a communications system including the steps of receiving data, detecting a packet within the received data, producing an estimate of the time-varying frequency offset of the received data, estimating the start of the packet of the received data, estimating the time-varying phase offset of the received data and estimating the time-varying time offset of the received data.

[0012] Preferably the method for detecting and synchronising packets further includes the step of estimating the time-varying frequency offset of the received data again after the packet start has been estimated.

[0013] Preferably the method for detecting and synchronising packets further includes the step of applying a correction to the received data based on the estimated frequency offset of the received data before the step of estimating the start of packet.

[0014] Preferably the method for detecting and synchronising packets further includes the step of applying corrections based on the frequency and phase offsets to the received data before the step of estimating the time varying time offset.

[0015] In broad terms in a further aspect the invention comprises a method for determining the frequency offset of data including a pilot symbol including a repeated sequence including the steps of:

[0016] receiving the data at a receiver as a series of data samples,

[0017] producing an autocorrelation of a first vector of the received data,

[0018] producing a cross correlation between the first vector of the received data and a second vector of the received data,

[0019] determining a timing metric representing the approximate start of a data packet for the current data sample as a function of the autocorrelation, the cross correlation and a threshold value,

[0020] assessing whether the timing metric is positives,

[0021] if the timing metric is not positive returning to the step of producing an autocorrelation of a first vector of the received data, and

[0022] if or when the timing metric is or becomes positive estimating the frequency offset from the phase of the cross correlation.

[0023] Preferably the method of determining the frequency offset further includes the steps of:

[0024] determining the phase of the cross correlation of the first vector and the second vector once the start of a data packet has been detected, and

[0025] estimating the frequency offset from the phase of the cross correlation.

[0026] Preferably the pilot symbol includes at least two sequences with constant envelope in both the frequency and time domains.

[0027] Preferably the length of the vectors used to determine the autocorrelation and the cross correlation of the received data are the length of a constant envelope sequence in the pilot symbol.

[0028] In one embodiment the step of determining the timing metric includes determining the result of:

|P_(l)|−T_(C1){square root}{square root over (R_(l)R_(l+L))}

[0029] where P_(l) represents the cross correlation of the received data,

[0030] T_(C1) represents the threshold value,

[0031] R_(l) represents the autocorrelation of the received data beginning at sample l, and

[0032] R_(l+L) represents the autocorrelation of the received data beginning at sample l+L.

[0033] In a further embodiment the step of determining the timing metric includes determining the result of:

|P_(l)|−T_(C1)max(R_(l)R_(l+L))

[0034] where P_(l) represents the cross correlation of the received data,

[0035] T_(C1) represents the threshold value,

[0036] max represents taking the maximum value of those in the brackets,

[0037] R_(l) represents the autocorrelation of the received data beginning at sample l, and

[0038] R_(l+L) represents the autocorrelation of the received data beginning at sample l+L.

[0039] In a further embodiment the step of determining the timing metric includes determining the result of:

|P_(l)|−T_(C1)R_(l)

[0040] where P_(l) represents the cross correlation of the received data,

[0041] T_(C1) represents the threshold value, and

[0042] R_(l) represents the autocorrelation of the received data beginning at sample l.

[0043] In a further embodiment the step of determining the timing metric includes determining the result of:

|P_(l)|−T_(C1)R_(l+L)

[0044] where P_(l) represents the cross correlation of the received data,

[0045] T_(C1) represents the threshold value, and

[0046] R_(l+L) represents the autocorrelation of the received data beginning at sample l+L.

[0047] In a still further embodiment the step of determining the timing metric includes determining the result of:

P_(l) ²−T_(C1) ²R_(l) ²

[0048] where P_(l) represents the cross correlation of the received data,

[0049] T_(C1) represents the threshold value, and

[0050] R_(l) represents the autocorrelation of the received data beginning at sample l.

[0051] Preferably the step of determining the frequency offset includes determining the result of: $\frac{1}{2\quad \pi \quad {LT}}{\arctan \left( \frac{{Im}\left\{ P_{l} \right\}}{{Re}\left\{ P_{l} \right\}} \right)}$

[0052] where P_(l) represents the cross correlation of the received data,

[0053] L represent the length of a constant envelope sequence in the pilot symbol, and

[0054] T represents the period of a sample.

[0055] In broad terms in a further aspect the invention comprises a method of determining the start of a packet of data including a pilot symbol including a repeated sequence including the steps of:

[0056] receiving the data at a receiver as a series of data samples,

[0057] applying a correction based on an estimate of a frequency offset of the received data to a first vector of the received data to form a matched filter,

[0058] producing an autocorrelation of the first vector of the received data,

[0059] applying the matched filter to the received data to produce an output,

[0060] determining a timing metric for the current sample of data as a function of the output of the matched filter, the autocorrelation of the first vector of the received data, the magnitude of the constant envelope of a sequence of the pilot symbol and a first threshold value,

[0061] assessing whether the first timing metric is positive,

[0062] if the first timing metric is not positive returning to the step of producing an autocorrelation at the first vector of the received data, and

[0063] when the first timing metric becomes positive estimating the start of packet from the current data sample.

[0064] Preferably the pilot symbol includes at least two sequences with constant envelope in both the frequency and time domains.

[0065] Preferably the length of the matched filter is equal to the length of a sequence within the pilot symbol.

[0066] Preferably the length of the vector used to produce the autocorrelation is equal to the length of a sequence within the pilot symbol.

[0067] Preferably the vector of data used to produce the autocorrelation and the vector of data used to produce the output of the matched filter are the same.

[0068] Preferably the method of determining the start of a packet of data further includes the step of ensuring that a second timing metric is positive before estimating the start of the data packet.

[0069] Ideally the second timing metric is a function of a second threshold value, the autocorrelation of the received data and a cross correlation between the first vector of data and a second vector of the received data.

[0070] In one embodiment the step of determining the first timing metric includes the step of determining the result of:

|Q_(l)+Q_(l+1)|−T_(C2){square root}{square root over (LS)}{square root}{square root over (R_(l))}

[0071] where Q_(l) represents the output of the matched filter for a vector of the received data starting at sample l,

[0072] Q_(l+1) represents the output of the matched filter for a vector of the received data starting at sample l+1,

[0073] T_(C2) represents the threshold value,

[0074] L represents the length of a constant envelope sequence in the pilot symbol,

[0075] S represents the per-sample magnitude of a constant envelope sequence in the pilot symbol, and

[0076] R_(l) represents the autocorrelation of the first vector of the received data

[0077] In another embodiment the step of determining the first timing metric includes the step of determining the result of:

|Q_(l)+Q_(l+1)|²−T_(C2) ²LS²R_(l)

[0078] where Q_(l) represents the output of the matched filter for a vector of the received data starting at sample l,

[0079] Q_(l+1) represents the output of the matched filter for a vector of the received data starting at sample l+1,

[0080] T_(C2) represents the threshold value,

[0081] L represents the length of a constant envelope sequence in the pilot symbol,

[0082] S represents the per-sample magnitude of a constant envelope sequence in the pilot symbol, and

[0083] R_(l) represents the autocorrelation of the first vector of the received data.

[0084] Preferably the step of determining the start of packet includes the step of determining the result of:

{circumflex over (l)}+2L−1|_({circumflex over (l)}=0)

[0085] where {circumflex over (l)} represents the range of samples of the received data for which both the first and second timing metrics are positive.

[0086] In broad terms in a further aspect the invention comprises a method for estimating the phase offset of data including a pilot symbol including a repeated sequence including the steps of:

[0087] receiving the data at a receiver as a series of data samples,

[0088] applying a correction based on an estimate of a frequency offset of the data to a vector of received data to form a matched filter,

[0089] applying the matched filter to the received data,

[0090] determining the correlation peak of the matched filter, and

[0091] estimating the phase offset from the phase of the correlation peak.

[0092] Preferably the pilot symbol includes at least two sequences with constant envelope in both the frequency and time domains.

[0093] Preferably the length of the data vector used to form the matched filter is equal to the length of a sequence in the pilot symbol.

[0094] Preferably the step of determining the phase offset includes the step of determining the result of: $\arctan \left( \frac{{Im}\left\{ Q_{0} \right\}}{{Re}\left\{ Q_{0} \right\}} \right)$

[0095] where arctan denotes the arctangent function,

[0096] Im denotes the imagery part of the number in brackets,

[0097] Re denotes the real part of the number in brackets, and

[0098] Q₀ represents the matched filter correlation peak.

[0099] In broad terms in a further aspect the invention comprises a method of determining the timing offset of data including a pilot symbol including a repeated sequence including the steps of:

[0100] receiving the data at a receiver as a series of data samples,

[0101] determining the start of a second sequence within the pilot symbol of the received data to an accuracy of half a data sample,

[0102] taking a discrete Fourier transform of a vector of the received data,

[0103] forming a vector product of the output of the discrete Fourier transform and the data sample of the second sequence, and

[0104] estimating the timing offset from the vector product.

[0105] Preferably the pilot symbol includes at least two sequences with constant envelope in both the frequency and time domains.

[0106] Preferably the method of determining the timing offset further includes the step of applying a frequency offset correction to the received data before the step of taking the discrete Fourier transform of the data.

[0107] Preferably the method of determining the timing offset further includes the step of applying a phase offset correction to the received data before the step of taking the discrete Fourier transform of the data.

[0108] Preferably the discrete Fourier transform is an L-point discrete Fourier transform where L represents the length of one constant envelope sequence in the pilot symbol.

[0109] Preferably the step of determining the start of a second constant envelope sequence in the pilot symbol includes the steps of:

[0110] producing an autocorrelation of a first vector of the received data,

[0111] applying a correction based on an estimate of a frequency offset of the received data to the first vector of the received data to form a matched filter,

[0112] applying the matched filter to the received data to produce an output,

[0113] determining a timing metric for the current sample of data as a function of the output of the matched filter, the autocorrelation of the first vector of the received data, the magnitude of the constant envelope of a sequence of the pilot symbol and a first threshold value,

[0114] assessing when the first timing metric becomes positive, and

[0115] estimating the start of packet from the current data sample.

[0116] Preferably the step of estimating the timing offset from the vector product includes the step of determining the result of: $\frac{LT}{2\quad \pi}\frac{{k^{T}\beta} - {\frac{1}{L}k^{T}{oo}^{T}\beta}}{{k^{T}k} - {\frac{1}{L}\left( {k^{T}o} \right)^{2}}}$

[0117] where L represents the length of a constant envelope sequence in the pilot symbol,

[0118] T represents the period of a sample,

[0119] k represents a vector containing numbers 0 to L−1,

[0120] βrepresents the argument of the vector product, and

[0121] o represents an L-length vector of ones.

[0122] In broad terms in a further aspect the invention comprises a receiver for detecting and synchronising packets received by a communications system including a front end arranged to receive data, a packet detect estimator arranged to detect a packet within the received data, a frequency offset estimator arranged to produce an estimate of the time-varying frequency offset of the received data, a start of packet estimator arranged to estimate the start of the packet of the received data, a phase offset estimator arranged to estimate the time-varying phase offset of the received data and a time offset estimator arranged to estimate the time-varying time offset of the received data.

[0123] Preferably the frequency offset estimation means of the receiver is further arranged to estimate the time-varying frequency offset of the received data again after the packet start has been estimated.

[0124] Preferably the receiver further includes correction means arranged to apply a correction based on the estimated frequency offset to the received data before the start of packet estimation means estimates the start of packet.

[0125] Preferably the time offset estimation means of the receiver is further arranged to apply corrections based on the frequency and phase offsets to the received data before estimating the time varying time offset.

[0126] In broad terms in a further aspect the invention comprises frequency offset estimator arranged to determine the frequency offset of the received data including a pilot symbol including a repeated sequence including:

[0127] first correlation means arranged to produce an autocorrelation of a first vector of the received data,

[0128] second correlation means arranged to produce a cross correlation between the first vector of the received data and a second vector of the received data, and

[0129] computation means arranged to determine a timing metric as a function of the autocorrelation, the cross correlation and a threshold value, assess when the timing metric becomes positive, and when the timing metric becomes positive estimate the frequency offset from the phase of the cross correlation.

[0130] Preferably the calculation means of the frequency offset estimator is further arranged to:

[0131] determine the phase of the cross correlation of the first vector and the second vector once the start of a data packet has been detected, and

[0132] estimate the frequency offset from the phase of the cross correlation.

[0133] Preferably the pilot symbol includes at least two sequences with constant envelope in both the frequency and time domains.

[0134] Preferably the length of the vectors used to determine the autocorrelation and the cross correlation of the received data are the same length as a sequence in the pilot symbol.

[0135] In one embodiment the computation means of the frequency offset estimator is arranged to assess the timing metric as:

|P_(l)|−T_(C1){square root}{square root over (R_(l)R_(l+L))}

[0136] where P_(l) represents the cross correlation of the received data,

[0137] T_(C1) represents the threshold value,

[0138] R_(l) represents the autocorrelation of the received data beginning at sample l, and

[0139] R_(l+L) represents the autocorrelation of the received data beginning at sample l+L.

[0140] In a further embodiment the computation means of the frequency offset estimator is arranged to assess the timing metric as:

|P_(l)|−T_(C1)max (R_(l)R_(l+L))

[0141] where P_(l) represents the cross correlation of the received data,

[0142] T_(C1) represents the threshold value,

[0143] max represents taking the maximum value of those in the brackets,

[0144] R_(l) represents the autocorrelation of the received data beginning at sample l, and

[0145] R+L represents the autocorrelation of the received data beginning at sample l+L.

[0146] In a further embodiment the computation means of the frequency offset estimator is arranged to assess the timing metric as:

[0147] |P_(l)|−T_(C1)R_(l)

[0148] where P_(l) represents the cross correlation of the received data,

[0149] T_(C1) represents the threshold value, and

[0150] R_(l) represents the autocorrelation of the received data beginning at sample l.

[0151] In a further embodiment the computation means of the frequency offset estimator is arranged to assess the timing metric as:

|P_(l)|−T_(C1)R_(l+L)

[0152] where P_(l) represents the cross correlation of the received data,

[0153] T_(C1) represents the threshold value, and

[0154] R_(l+L) represents the autocorrelation of the received data beginning at sample l+L.

[0155] In a still further embodiment the computation means of the frequency offset estimator is arranged to assess the timing metric as:

P_(l) ²−T_(C1) ²R_(l) ²

[0156] where P_(l) represents the cross correlation of the received data,

[0157] T_(C1) represents the threshold value, and

[0158] R_(l) represents the autocorrelation of the received data beginning at sample l.

[0159] Preferably the computation means of the frequency offset estimator is further arranged to estimate the frequency offset as: $\frac{1}{2\quad \pi \quad {LT}}{\arctan \left( \frac{{Im}\left\{ P_{l} \right\}}{{Re}\left\{ P_{l} \right\}} \right)}$

[0160] where P_(l) represents the cross correlation of the received data,

[0161] L represent the length of a constant envelope sequence in the pilot symbol, and

[0162] T represents the period of a sample.

[0163] In broad terms in a further aspect the invention comprises a start of packet estimator arranged to estimate the start of a packet of a series of samples of data including a pilot symbol including a repeated sequence including:

[0164] correlator means arranged to produce an autocorrelation of a first vector of the received data,

[0165] matched filter forming means arranged to apply a correction based on an estimate of a frequency offset of the received data to the first vector of the received data to form a matched filter,

[0166] matched filter means arranged to apply the matched filter to the received data to produce an output, and

[0167] computation means arranged to determine a timing metric for the current sample of data as a function of the output of the matched filter, the autocorrelation of the first vector of the received data, the magnitude of the constant envelope of a sequence within the pilot symbol and a first threshold value, assess when the first timing metric becomes positive, and estimate the start of packet from the current data sample.

[0168] Preferably the length of the matched filter is equal to the length of a constant envelope sequence within the pilot symbol.

[0169] Preferably the length of the vector used to produce the autocorrelation is equal to the length of a constant envelope sequence within the pilot symbol.

[0170] Preferably the vector of data used to produce the autocorrelation and the vector of data used to produce the output of the matched filter are the same.

[0171] Preferably the computation means of the start of packet estimator is further arranged to ensure that a second timing metric is positive before estimating the start of the data packet.

[0172] Ideally the second timing metric is a function of a second threshold value, the autocorrelation of the received data and a cross correlation between the first vector of data and a second vector of the received data.

[0173] In one embodiment the computation means of the start of packet estimator is arranged to assess the timing metric as:

|Q_(l)+Q_(l+1)|−T_(C2){square root}{square root over (LS)}{square root}{square root over (R_(l))}

[0174] where Q_(l) represents the output of the matched filter for a vector of the received data starting at sample l,

[0175] Q_(l+1) represents the output of the matched filter for a vector of the received data starting at sample l+1,

[0176] T_(C2) represents the threshold value,

[0177] L represents the length of a constant envelope sequence in the pilot symbol,

[0178] S represents the per-sample magnitude of a constant envelope sequence in the pilot symbol, and

[0179] R_(l) represents the autocorrelation of the first vector of the received data.

[0180] In another embodiment the computation means of the start of packet estimator is arranged to assess the timing metric as:

[0181] |Q_(l)+Q_(l+1)|²−T_(C2) ²LS²R_(l)

[0182] where Q_(l) represents the output of the matched filter for a vector of the received data starting at sample l,

[0183] Q_(l+1) represents the output of the matched filter for a vector of the received data starting at sample l+1,

[0184] T_(C2) represents the threshold value,

[0185] L represents the length of a constant envelope sequence in the pilot symbol,

[0186] S represents the per-sample magnitude of a constant envelope sequence in the pilot symbol, and

[0187] R_(l) represents the autocorrelation of the first vector of the received data.

[0188] Preferably the computation means of the start of packet estimator is arranged to assess the start of packet as:

{circumflex over (l)}+2L−1|_({circumflex over (l)}=0)

[0189] where {circumflex over (l)} represents the range of samples of the received data for which both the first and second timing metrics are positive.

[0190] In broad terms in a further aspect the invention comprises a phase offset estimator arranged to estimate the phase offset of data including a pilot symbol including a repeated sequence including:

[0191] computation means arranged to apply a correction based on an estimate of a frequency offset of the data to a vector of received data to form a matched filter,

[0192] a matched filter arranged to filter to the received data, and

[0193] the computation means further arranged to determine the correlation peak of the matched filter, and estimate the phase offset from the phase of the correlation peak.

[0194] Preferably the length of the data vector used to form the matched filter is equal to the length of a sequence in the pilot symbol.

[0195] Preferably the computation means of the phase offset estimator is further arranged to estimate the phase offset as: $\arctan \left( \frac{{Im}\left\{ Q_{0} \right\}}{{Re}\left\{ Q_{0} \right\}} \right)$

[0196] where arctan denotes the arctangent function,

[0197] Im denotes the imagery part of the number in brackets,

[0198] Re denotes the real part of the number in brackets, and

[0199] Q₀ represents the matched filter correlation peak.

[0200] In broad terms in a further aspect the invention comprises a timing offset estimator arranged to estimate the timing offset of a received series of samples of data including a pilot symbol including a repeated sequence including:

[0201] computation means arranged to determine the start of a second sequence within the pilot symbol of the received data to an accuracy of half a data sample,

[0202] Fourier transform means arranged to perform a discrete Fourier transform on a vector of the received data, and

[0203] the computation means further arranged to form a vector product of the output of the discrete Fourier transform and the data sample of the second constant envelope sequence, and estimate the timing offset from the vector product.

[0204] Preferably the computation means of the timing offset estimator is further arranged to apply a frequency offset correction to the received data before the Fourier transform means takes the discrete Fourier transform of the data.

[0205] Preferably the computation means of the timing offset estimator is further arranged to apply a phase offset correction to the received data before the Fourier transform means takes the discrete Fourier transform of the data.

[0206] Preferably the discrete Fourier transform is an L-point discrete Fourier transform where L represents the length of a sequence in the pilot symbol.

[0207] Preferably the computation means of the timing offset estimator is further arranged to determine the start of a second sequence in the pilot symbol by:

[0208] producing an autocorrelation of a first vector of the received data,

[0209] applying a correction based on an estimate of a frequency offset of the received data to the first vector of the received data to form a matched filter,

[0210] applying the matched filter to the received data to produce an output,

[0211] determining a timing metric for the current sample of data as a function of the output of the matched filter, the autocorrelation of the first vector of the received data, the magnitude of the constant envelope of a sequence of the pilot symbol and a first threshold value,

[0212] assessing when the first timing metric becomes positive, and

[0213] when the first timing metric becomes positive estimating the start of packet from the current data sample.

[0214] Preferably the computation means of the thing offset estimator is further arranged to estimate the timing offset from the vector product by determining the result of: $\frac{LT}{2\quad \pi}\frac{{k^{T}\beta} - {\frac{1}{L}k^{T}{oo}^{T}\beta}}{{k^{T}k} - {\frac{1}{L}\left( {k^{T}o} \right)^{2}}}$

[0215] where L represents the length of a constant envelope sequence in the pilot symbol,

[0216] T represents the period of a sample,

[0217] k represents a vector containing numbers 0 to L−1,

[0218] β represents the argument of the vector product, and

[0219] o represents an L-length vector of ones.

BRIEF DESCRIPTION OF FIGURES

[0220] A preferred form system and method of the invention will be further described with reference to the accompanying figures by way of example only and without intending to be limiting, wherein;

[0221]FIG. 1A is a block diagram of a transmitter that may be used to send OFDM data packets;

[0222]FIG. 1B is a block diagram of a receiver that may be used to receive OFDM data packets;

[0223]FIG. 2A is a packet for an OFDM system with a frequency flat fading channel;

[0224]FIG. 2B is a packet for an OFDM system with the time-dispersive channel;

[0225]FIG. 3A is a block diagram of a packet detect block for estimating channel parameters;

[0226]FIG. 3B shows the outputs of the correlators used for detecting a packet and detecting the start of a packet;

[0227]FIG. 4 is an algorithm showing the method used to determine the frequency offset;

[0228]FIG. 5 is an algorithm showing the method used to determine the start of packet;

[0229]FIG. 6A shows the pseudo random binary sequence (PRBS) matched filter output sampling;

[0230]FIG. 6B shows the modified PROS matched filter output sampling;

[0231]FIG. 7 is an algorithm showing the method used to determine the phase offset;

[0232]FIG. 8A is a block diagram showing the blocks used to estimate the timing and phase offset;

[0233]FIG. 8B shows an example of timing offset MMSE estimation;

[0234]FIG. 9 is an algorithm showing the method used to determine the time offset;

[0235]FIG. 10A shows an example of the estimated frequency offset per OFDM block in an OFDM system;

[0236]FIG. 10B shows an example of the estimated timing offset per OFDM block in an OFDM system;

[0237]FIG. 10C shows an example of the received data constellation in an OFDM system;

[0238]FIG. 11 shows the correlation between the covariance random variable and the mean power random variable;

[0239]FIG. 12 shows the Kolmogorov-Smirnov distance goodness of fit measures referred to the 95% significance level;

[0240]FIG. 13A shows the expected value of the packet detection metric;

[0241]FIG. 13B shows the variance of the packet detection metric;

[0242]FIG. 14A shows the packet detection probability with SNR per bit of 20 dB;

[0243]FIG. 14B shows the packet detection probability with SNR per bit of 40 dB;

[0244]FIG. 14C shows the packet detection metric;

[0245]FIG. 15A is a comparison of experimental and predicted values of the correlation output from the cross correlator, the timing metric and autocorrelation of the received data for the system;

[0246]FIG. 15B is a comparison of experimental and predicted values of the packet decision metric for the system;

[0247]FIG. 16A is a comparison of the variance of the frequency offset estimation error and linear and Gaussian approximations to this error;

[0248]FIG. 16B shows the density of the frequency offset estimation error at several values of SNR;

[0249]FIG. 17A shows the accuracy of the frequency offset estimation error variance offset from the correlation peak;

[0250]FIG. 17B shows the percentage increase in frequency offset estimation variance from zero lag at a given SNR;

[0251]FIG. 18 shows the correlation between the covariance random variable and the mean power random variable;

[0252]FIG. 19 shows the Kolmogorov-Smirnov distance measures for the goodness of fit referred to 95% significance level;

[0253]FIG. 20A shows the probability of detection based on the start of packet detection metric as a function of SNR for a fixed threshold of correlation:

[0254]FIG. 20B shows the expected value of the start of packet detection metric for differing SNR;

[0255]FIG. 21A shows the probability of correct packet detection;

[0256]FIG. 21B shows the probability of false packet detection;

[0257]FIG. 22A shows the probability of noise-only false detection;

[0258]FIG. 22B shows the mean time between false detection for a set sample rate;

[0259]FIG. 23A shows the phase offset estimation error variance;

[0260]FIG. 23B shows the ensemble probability density function of the phase offset estimation error; and

[0261]FIG. 24 shows the phase offset estimation error density at a fixed SNR.

DETAILED DESCRIPTION OF PREFERRED FORMS

[0262] The example system described here uses OFDM and a single pilot symbol based on a (repeated) sequence, preferably a maximum length sequence to obtain initial estimates of the start of packet and time varying frequency-, phase- and time-offsets, n, ν(0), θ(0) and τ_(s)(0) respectively. Subsequent OFDM data is used to track the time varying frequency-, phase- and time-offsets, ν(nT), θ(nT) and τ_(s)(nT). This method requires less overhead than previously reported methods, as it requires only a single pilot symbol and relies on neither null symbols, pilot tones nor cyclic prefixes to obtain or track parameters. Further, since the preferred pilot symbol is a (frequency domain) maximum length sequence which is coherently demodulated, the pilot symbol may be used for channel estimation, and the narrowband channel parameter estimates are maximum likelihood. This system is described below and also described and claimed in the Applicant's PCT application PCT/NZ01/00173.

[0263]FIGS. 1A and 1B are block diagrams of a transmitter and receiver that may be used with the channel parameter and start of packet detection algorithms of the invention. An example of parameters that may be used in this system is shown in Table 1. These parameters are by way of example only and should not be seen as limiting. The parameters may be varied without going beyond the scope of the invention. The example system with these parameters was used to generate the results shown in FIGS. 6A, 6B and 6C to demonstrate the invention. TABLE 1 Key parameters of an example system. Parameter Value OFDM Block Size 128 Number of Sub-Carriers 100 Modulation QPSK Coding Reed-Solomon (15, 11) Sample Rate 1 MHz RE Carrier 2.45 GHz Sub-Carrier Spacing 7.812 kHz −3 dB Bandwidth   785 kHz Symbol Duration 128 μs Coded Data Rate QPSK 1.56 Mbit/s Uncoded Data Rate QPSK 1.15 Mbit/s

[0264] In the example system both the transmitter and receiver modules were implemented using a number of digital signal processors (DSPs), each running at 40 MIPS. At the symbol sample rate of 1 MHz, this restricted each processor to a maximum of 40 instruction cycles per symbol. The processor boards were connected, as analogue complex baseband, through an interface module to the RF up- and down-converters. As only single channel A/D and D/A conversion was available for the processor boards, the in-phase and quadrature samples were digitally multiplexed into (out of) the A/D (D/A) converter at double the symbol sample rate. Further, the complex baseband was up-sampled (down-sampled) by two into (out of) the A/D (D/A) converter and low-pass filtered digitally to ease the analogue transmitter and receiver filter requirements.

[0265] The baseband transmitter, shown in FIG. 1A, can be viewed as consisting of four modules. Module 101 contains encoder 1 such as a Reed-Solomon encoder, module 102 contains a transmit modulator 2 and framer 3, module 103 contains a pre-distortion equaliser 4, and module 104 contains an OFDM inverse fast Fourier transformer (IFFT) 5 plus signal conditioner 6, 7 and D/A converter driver 8.

[0266] Each of these modules may be implemented using relatively standard technology. The functions of each block have been grouped into larger modules for convenience only.

[0267] Data source 10 provides raw data to encoder 1. The data is ideally binary. If data is provided to the data source in another form then preferably the data source converts the data to binary data. In use the data source will be connected to a piece of electronic equipment (such as a laptop computer or wireless phone) that provides data to the data source. In some cases the data source module may be the electronic equipment itself or a link to the electronic equipment. The data source may also communicate to encoder 1 to begin or cease encoding data using the Data Start/Stop arrow illustrated in FIG. 1A.

[0268] Encoder 1 then encodes the data to add error detection and/or correction information to the raw data. In FIG. 1A the encoder is shown as a Reed-Solomon encoder. However the encoder may be any BCH encoder or other suitable encoder. A Reed-Solomon encoder has the advantage of encoding, and thereby protecting from error, blocks of data bits. This provides frequency domain data with good protection from frequency-selective fading, which will tend to induce bit errors in blocks of data bits. The encoder is arranged to segment the data received from data source 10 into segments with a predetermined number of bits. When a cyclic coder (like a Reed-Solomon coder) is used the number of data bits in each segment depends on the actual code used. For each segment the coder performs the code. In the case of a cyclic encoder this includes adding error detection and/or correction information to the end of the code. The coded data segments are then passed to transmit modulator 2.

[0269] Transmit modulator 2 arranges the coded data segments into packets and appends a pilot symbol to the start of each packet. Each data packet includes at least one coded data segment. If an encoder is not used then the transmit modulator receives data directly from data source 10 and arranges the data into packets before appending the pilot symbol to the start of each packet. The pilot symbol is a repeated pseudo random binary sequence. The pilot symbol is used in the receiver, firstly, to identify the packet start, secondly, to produce an initial estimate of the time-varying channel parameters described previously and, thirdly, to “sound” the channel to produce an initial estimate of the frequency-selective fading channel for the pre-distortion equaliser 4. Transmit modulator 2 may be further arranged to pad each packet to a predetermined length. In general only the last packet in a data sequence will need padding as all other packets will have been, segmented to the required length by the encoder. Alternatively the encoder may be arranged to pad short sequences to the required length before encoding data. The transmit modulator may also be arranged to take the coded data and transfer it to a modulation scheme such as QPSK or 64 QAM. Other suitable modulation types may also be used.

[0270] Framer 3 takes the packets provided by transmit modulator 2 and multiplexes the data from serial data to parallel data. There may be less parallel data paths from framer 3 then there are data bits in a packet. Ideally the number of data bits in each packet is an integer multiple of the number of parallel paths from the framer. The transmit modulator 2 and framer 3 may be implemented using finite state machine architecture.

[0271] The data from framer 3 then passes to equaliser 4. It has been shown that the signal bandwidth in a typical indoor propagation environment in some instances is sufficiently narrow to experience frequency flat fading. Equaliser 4 is a pre-distortion equaliser arranged to compensate for non-ideal composite analogue filter amplitude and phase responses in the transmitter and receiver RF sections. Use of pre-distortion equaliser 4 ensures that the composite transmit/receiver filter is linear phase. Alternatively in addition the pre-distortion equaliser may be arranged to equalise the channel. In this case if the receiver and transmitter are coupled together as a transceiver then when data is received the pilot symbol of each data packet is used (among other things) to “sound” the channel. The results of “sounding” the channel are used to produce an initial estimate of the frequency selective fading channel for the pre-distortion equaliser. The channel estimate may be updated with each received packet. Exploiting inherent OFDM processing efficiency, the equaliser implementation is made computationally efficient by operating directly in the frequency domain. Thus, the number of complex multiplies (say 100) per OFDM block required to implement the frequency domain equaliser produces equivalent performance to a time-domain tap equaliser with the same number of taps (100).

[0272] Following the pre-distortion equaliser is inverse fast Fourier transform (IFFT) operator 5. The IFFT operator receives parallel data in the frequency domain and transforms it into time domain data. The time domain data then passes to up-sampler 6 that samples that data at greater than the nominal bit rate. The use of the up-sampler reduces the performance requirement for the output stage digital low pass filter 7. Typically data is sampled at twice the nominal bit rate but other rates of over sampling could be used. Together with FIR filter 7 the up-sampler makes up a signal conditioner arranged to reduce the performance requirements for the output stage digital low pass filter and subsequent analogue filter. Ideally the FIR filter 7 is arranged as a low pass filter and is arranged to remove out-of-band noise from the data.

[0273] Finally the equalised time domain data is converted from digital data to analogue data in digital to analogue (D/A) converter 8 and modulated onto a carrier wave in a higher frequency band for transmission in RF module 9. The data is then transmitted. Ideally RF block 9 includes a quadrature modulator, frequency up-converter, bandpass filter and power amplifier.

[0274] The baseband receiver, shown in FIG. 1B, consists of four modules. Module 201 contains an A/D converter driver 11, 13 and signal conditioner 12, 14, module 202 contains a frame detector 15, 16 and first stage receiver 17, 18, module 203 contains a second stage receiver including symbol timing 19 and decision making 20 means, and module 204 contains a decoder 23.

[0275] The data received by RF block 9 which is arranged to shift the data back to baseband. Ideally the RF block of the receiver includes a low noise amplifier, bandpass filter, quadrature demodulator and frequency down-converter. The baseband data is then sampled by analogue to digital (A/D) converter 11. This converts the received data from an analogue signal to a digital signal. Ideally the A/D converter samples the received data at greater than the nominal bit rate. The sampled signal then passes through signal conditioner 12, 14 that compensates for some of the channel and noise induced distortions. A further purpose of the signal conditioner 12 is to digitally low pass filter the baseband signal to remove out-of-band noise. Down-sampler 14 samples the data at the nominal bit rate. The data is then passed to packet detector 15.

[0276] The data received by packet detector 15 may be described by the equation ${r^{\delta}(t)} = {\sum\limits_{n}{{r(t)}\exp^{j{\lbrack{{2\quad \pi \quad \upsilon \quad t} + \theta}\rbrack}}\quad {\delta \left( {t - {nT} - \tau} \right)}}}$

[0277] where r(t) is the convolution of the message data, channel and the signal conditioner 12, 14, ν is the time-varying frequency error, θ is the time varying phase error and τ is the time-varying time error.

[0278] Packet detector 15 and frame timing block 16 search for significant pilot symbol correlations in the received data. The packet detect block also provides the frame timing block 16 with an estimate of the time-varying frequency error. When a pilot symbol is detected the frame detector 15, 16 then makes initial estimates of n, ν(0) and θ(0) and initialises or updates the local oscillator compensation phase locked loop (PLL) 17.

[0279] Frame timing module 16 is further arranged to provide a start of packet estimate to timing correction block 13. Along with a start of packet estimate provided by MMSE update block 21, the timing correction block advances or retards sampling by the A/D converter by a fraction of a sample as required. For example if the A/D converter samples the received and down-converted data at twice the nominal bit rate then timing correction block 13 may advance or retard the A/D converter by half a sample. During the remainder of frame reception, module 202 is the first stage of the OFDM receiver, applying the compensation PLL 17 and performing the forward FFT 18 required by OFDM demodulation.

[0280] After the start of a packet has been detected by packet detect block 15 the packet is passed through phase locked loop 17. Phase locked loop 17 also receives estimate of the time varying phase error and the time varying frequency error. The phase locked loop uses the time varying phase and frequency error estimates to remove the time varying phase and frequency errors from the data packets.

[0281] The corrected data packets then pass through forward fast Fourier transform operator 18 that transforms the data from time domain data to frequency domain data.

[0282] Following transformation the frequency domain data passes into the second stage receiver. The second stage receiver commences operation on frame detection. Its functions are, initially, to estimate the time varying sub-sample time offset τ(0) using MMSE block 21 and, throughout the remainder of the frame, to apply symbol timing error correction using symbol timing block 19 and update estimates of the time varying phase error θ(n), and thereby the time varying frequency error ν(n), and the time varying time error τ(n) using minimum mean square error (MMSE) estimation. Note that, since the symbol timing error is bounded by definition, that is −½<τ≦½, when this range is exceeded, an increment or decrement to the current sample number n is required. Incrementing or decrementing the current sample number of a function performed by timing correction block 13. Data decision block 20 follows symbol timing block 19. Data decision block 20 makes hard decisions on each data bit (symbol) prior to error detection and correction.

[0283] Data decision block 20 may include a demodulator. Acting together with the decision process, the demodulator converts the data back from a modulation scheme, such as QPSK or 64 QAM, to binary data.

[0284] After hard decisions have been made on the data the data streams are converted back from parallel to serial data by demultiplexer 22.

[0285] Following demultiplexer 22 is decoder 23. The decoder decodes the coded data and performs error corrections and/or detection up to the limit of the decoder. The decoder is matched to encoder 1 of the transmitter of FIG. 1. For example if the encoder is a Reed-Solomon encoder then the decoder will be a Reed-Solomon decoder. Following decoding of the data the data is then passed to the electronic equipment attached to the receiver as data sink 24.

[0286] The key to initial acquisition of the required combined channel and system parameters is the pilot symbol depicted in FIG. 2A or FIG. 2B, which is added to the transmitted data by the “Packetise” 2 block shown in FIG. 1A and interpreted by the “Packet Detect” 15 block shown in FIG. 1B. This pilot symbol comprises an L-length complex pseudo random binary sequence (PRBS), of half the length of the OFDM symbol period, which is repeated. The PRBS is synthesised in the frequency domain and occupies a similar bandwidth to OFDM data, noting that, as the PRBS is half the length of an OFDM symbol, each PRBS sub-carrier has twice the bandwidth of an OFDM sub-carrier. Where it is important to be able to distinguish between pilot symbols and true OFDM data, it is possible to use pseudo-MLS complex sequences which exhibit “nearly” ideal correlation properties and are chosen to have a different symbol constellation to the data symbols. The data packet shown in FIG. 2A is ideally for use in frequency flat fading channels. This data packet begins with the repeated pilot symbol 220 which is followed by the OFDM data symbols 221-223. At the end of the sequence of OFDM data symbols is a trailer 224. The trailer serves at the end of the packet. For channels such as time-dispersive (frequency selective) channels a different data packet structure is used. This structure includes a guard interval after each pilot symbol and OFDM symbol as well as after the trailer. The guard symbol may be a cyclic prefix or other suitable form of guard symbol. The guard symbol performs the function of keeping some distance between the pilot and data symbols and thus reducing inter-symbol interference.

[0287] The example system uses PRBS codes, as differentiation between pilot symbols and OFDM data was not a consideration: once the start of a packet has been detected, no further correlations are performed. One advantage of using PRBS codes is that all sub-carriers are occupied by the (constant envelope) PRBS, thus maximising the pilot symbol SNR at the receiver. Further, an important property of a maximum length sequence is that it has a constant envelope in both the time- and frequency-domains, thus the SNR of each sample is maximised and constant no matter which domain it is processed in. In principal, any signal which is constant envelope in both the time and frequency domains, can be used in place of the PRBS. Such signals may include chirps for example.

[0288]FIG. 3A shows the initial synchronisation process as may be used in packet detect block 15 of FIG. 1B. FIG. 4 shows the algorithm used to determine the frequency offset. Once the data has been received it is autocorrelated at block 402 and cross correlated at block 403 with the autocorrelation and cross correlation vectors the same length as one sequence in the pilot symbol. A timing metric shown in block 404 is then determined for the frequency offset estimation. The timing metric is updated at each sample as new cross correlation and autocorrelation values are determined. Once the timing metric becomes positive in block 405 the phase of the cross correlation is used to estimate the frequency offset. This forms the basic frequency offset estimation. At a later stage when the start of packet has been accurately estimated the frequency offset is re-estimated from the current cross correlation phase as shown in blocks 406 and 407. The received signal of a transmitted signal s(t), corrupted by the narrowband channel described by equation (3), additionally corrupted by additive white Gaussian noise (AWGN) and sampled with period T may be written as $\begin{matrix} {{r^{\delta}({nT})} = {\sum\limits_{n = 0}^{N - 1}{\left\{ {{{s(t)}{a(t)}^{- {j{\lbrack{{2\quad \pi \quad {v{(t)}}t} + {\theta {(t)}}}\rbrack}}}} + {\eta (t)}} \right\} {\delta \left\lbrack {t - {nT} - {\tau_{s}(t)}} \right\rbrack}}}} & 4 \end{matrix}$

[0289] where η(t) is complex AWGN having variance σ_(W) ². Assuming that channel parameters may be accurately approximated as constant over the duration of one OFDM symbol, the time-variation may be neglected, and the nth output sample from equation (4) can be re-written as

r _(n) =as(nT−τ _(s))e ^(−j[2πν(nT−τ) ^(_(s)) ^()+θ])+η(nT)   (5)

[0290] where the subscript n assumes T as implicit.

[0291] To estimate the time-varying frequency offset the sampled received data is both autocorrelated and cross correlated as shown in autocorrelation block 402 and cross correlation block 403 in FIG. 4. The received data is cross-correlated and autocorrelated in vectors of length L (the length of one sequence in the pilot symbol). For the cross correlation one vector of the received data is delayed in an L-length delay line. The output of the cross correlation may be written as $\begin{matrix} \begin{matrix} {P_{l}\overset{.}{=}{r_{l}^{H}r_{l + L}}} \\ {= {{a^{2}s_{l}^{H}s_{l + L}^{{- j}\quad 2\quad \pi \quad {vLT}}} + {a\left( {{s_{l}^{H}\eta_{l + L}} + {s_{l + L}\eta_{l}^{H}}} \right)} + {\eta_{l}^{H}\eta_{l + L}}}} \\ {\approx {{\left( {L - {l}} \right)a^{2}S^{2}^{{- j}\quad 2\quad \pi \quad {vLT}}} + {\sqrt{2\left\lbrack {{\left( {L - {l}} \right)a^{2}S^{2}} + {L\quad \sigma_{w}^{2}}} \right\rbrack}\eta_{l}}}} \end{matrix} & 6 \end{matrix}$

[0292] where r_(l)≐[r_(l),r_(l+1), . . . r_(l+L−1)]^(T) is an L-length column vector of the received data and [·]^(H) denotes Hermitian transpose, η_(l) is a zero mean complex Gaussian random variable (RV) with variance σ_(w) ², S is the per-sample magnitude of the PRBS pilot symbol, and P_(L) is the lth output sample of the L-length sliding window integrate-and-dump cross correlator 30, shown in FIG. 3A. This may be written in vector form. In equation 6 the first term on the right of the approximately equals sign is the signal term and the second term is the composite noise term. The Hermitian transpose of r_(L) is used to show that the cross correlation is an element by element multiplication producing a single value cross correlation output, P_(L). Both vectors r_(l) and r_(l+L) have length L, the length of the one sequence in the pilot symbol.

[0293] The autocorrelation for r_(l) is similar to the cross correlation with vector r_(l) having length L, the length of one sequence in the pilot symbol. The autocorrelation may be written as

R _(l) ≐r _(l) ^(H) r _(l)

[0294] Again the Hermitian transpose of r_(l) is used to show that the autocorrelation is an element by element multiplication producing a single value autocorrelation output, R_(l).

[0295] In the above cross correlation and autocorrelation l=0 represents the start of the first sequence in the pilot symbol. Using this definition, cross-correlator outputs for l<0 involve at least one input sample for which the composite subscript is less than one: these samples are noise only. The correlator output at l=0 is the cross correlation of the two (identical) halves of the pilot symbol. For l>0, the correlator output involves at least one input sample for which the composite subscript is larger than 2L−1: these input samples are data rather than pilot symbol. To determine the start of the transmission it is necessary to determine where l=0 occurs in the cross-correlator.

[0296] The initial synchronisation process, shown in FIG. 3A, is the sliding window integrate-and-dump cross correlation 30. The timing metric used here is obtained by modifying the non-central correlation coefficient $\begin{matrix} \begin{matrix} {{\rho_{l}}\overset{.}{=}\frac{{\langle{r_{l}^{H}r_{l + L}}\rangle}}{\sqrt{{\langle{r_{l}^{H}r_{l}}\rangle}{\langle{r_{l + L}^{H}r_{l + L}}\rangle}}}} \\ {= \frac{P_{l}}{\sqrt{R_{l}R_{l + L}}}} \end{matrix} & 7 \end{matrix}$

[0297] Where $\begin{matrix} \begin{matrix} {R_{l}\overset{.}{=}{r_{l}^{H}r_{l}}} \\ {\approx {{L\left( {{a^{2}S^{2}} + {2\quad \sigma_{w}^{2}}} \right)} + {2\sqrt{L\left( {{a^{2}S^{2}} + \sigma_{w}^{2}} \right)}{Re}\left\{ \eta_{l} \right\}}}} \end{matrix} & 8 \end{matrix}$

[0298] the autocorrelation of the received data, is a real non-central Gaussian RV. This second correlator, the autocorrelator, is an L-length sliding window autocorrelator used to estimate the received signal power. The first term on the right of the approximately equals sign is the signal term and the second term is the noise term.

[0299] The event of packet detection occurs when the timing metric |ρ_(l)| exceeds a pre-defined threshold of correlation, defined as T_(C1) as shown in block 404 of FIG. 4. As division is computationally expensive in DSP, the start of packet equivalently, and more efficiently, may be evaluated as X_(l)≐|P_(l)|−T_(C1){square root}{square root over (R_(l)R_(l+L))}. When the normalised cross correlation crosses the threshold T_(C1), X_(l) becomes positive indicating the start of the data packet. Note that, due to real-world conditions such as non-linear receiver effects and interference, it was found empirically that

X _(l) ≐|P _(l) −T _(C1)max(R_(l),R_(l+L))   9

[0300] was more robust in practise. Further, as R_(l) was found to be significantly correlated across l in real-world conditions, it was found empirically that either

X _(l) =|P _(l) |−T _(C1) R _(l)   (10)

[0301] Or X_(l)=|P_(l)|−T_(C1)R_(l+L) typically was evaluated per packet. Thus, although it is important to implement equation (9), the fundamental AWGN-only analyses consider equation (10) to enable real world effects to be analysed subsequently. As packet detection occurs simply when X_(l) becomes positive, a less computationally expensive (but equivalent) DSP implementation of equation (10) is X′_(l)=P_(l) ²−T_(C1) ²R_(l) ².

[0302] The threshold of correlation T_(C1) must be set at a level such that X_(l) becomes positive when the start of packet occurs but it must also be low enough to always indicate the start of a packet, ie it must be low enough so that P_(l)>T_(C1){square root}{square root over (R_(l)R_(l+L))} (or the equivalent inequality for the particular metric used) when the start of packet occurs.

[0303] This cross correlation is computationally efficient: for example an Analog Devices® ADSP21060 SHARC™ implementation requires 19 instruction cycles per sample to calculate X′_(l). Note that this calculation is independent of the length of each sequence of the pilot symbol, due to the integrate-and-dump implementation. However, the cross correlation timing metric has poor localisibility, as illustrated in FIG. 3B, and additionally suffers a 3 dB SNR penalty over a matched filter detection since the two received sequences cross-correlated each contain an AWGN component. Thus X_(l) is not the best metric for estimating the start of packet sample.

[0304] As shown in block 405 and 406 of FIG. 4 when the metric X_(l) becomes positive, the phase of the cross correlation P_(l) is used to estimate the frequency offset. The frequency offset may be estimated as $\begin{matrix} {\hat{v}\overset{.}{=}{\frac{1}{2\quad \pi \quad {LT}}a\quad {\tan \left( \frac{{Im}\left\{ P_{l} \right\}}{{Re}\left\{ P_{l} \right\}} \right)}}} & 11 \end{matrix}$

[0305] which has been shown to be the maximum likelihood estimate, and noting that atan denotes arc tangent. As X_(l) typically first becomes positive for l<0 ie before the packet begins, P_(l) typically will not be at its peak value, so the initial estimate of ν is regarded as a forward estimate which is ideally subsequently improved upon. This initial estimate of the time-varying frequency offset is used to assist in accurately estimating that start of packet. Once the start of packet has been accurately estimated then the time varying frequency offset is updated as shown in block 407 of FIG. 4. Further details of the update procedure for the time varying frequency offset are given later.

[0306]FIG. 5 shows a method used to estimate the start of a data packet. Block 501 shows the first step of receiving the data. In block 502 a correction is made to a vector of received data for the frequency offset to form a matched filter. Ideally this it the frequency offset estimated by the frequency offset estimation algorithm described with reference to FIG. 4. Alternatively another method may be used to determine the frequency offset. The matched filter is then applied to the data in block 503. In block 504 a timing metric is determined for the start of packet estimation. This timing metric is a function of the matched filter output, the autocorrelation of the received data, the magnitude of a constant envelope sequence in the pilot symbol and a threshold value. In block 505 a query is made of the timing metric formed in the frequency offset estimation algorithm. If this timing metric is positive then in block 506 the start of packet timing metric is queried. If this timing metric is also positive the start of packet is estimated.

[0307] To estimate the start of a packet the forward estimate for the time varying frequency offset ν is applied to a “clean” copy of the pilot symbol to form a matched filter 31 having the same frequency offset as the received signal as shown in block 502 of FIG. 5. The L-length matched filter with lth coefficient

n*_(l)=s*[lT]e^(j2π{circumflex over (ν)}lT)

[0308] is given by

n ^(H) =[s[0], s[1]e ^(−j2π{circumflex over (ν)}T) , . . . , s[L−1]e ^(−j2π{circumflex over (ν)}(L−1)T)]^(H)   12

[0309] This matched filter 31 is applied to the incoming received data, as shown in FIG. 3A, to produce the output $\begin{matrix} \begin{matrix} {Q_{l}\overset{.}{=}{n^{H}r_{l}}} \\ {= {{a\quad ^{- {j{\lbrack{{2\quad \pi \quad {v{({{lT} - \tau_{s}})}}} + \theta}\rbrack}}}{\sum\limits_{m = 0}^{L - 1}{s*\lbrack{mT}\rbrack {s\left\lbrack {{\left( {m + l} \right)T} - \tau_{s}} \right\rbrack}^{{- j}\quad \frac{m}{L}\varphi}}}} + {n^{H}\eta_{L}}}} \\ {\approx {{{LaS}^{2}\quad \sin \quad {c\left( {l - \frac{\tau_{s}}{T}} \right)}^{- {j{\lbrack{{2\quad \pi \quad {v{({{lT} - \tau_{s}})}}} + \theta + {\varphi \quad \frac{L - 1}{2L}}}\rbrack}}}} + {\sqrt{L}S\quad \eta}}} \end{matrix} & 13 \end{matrix}$

[0310] where sinc(l−τ_(S)/T) is an approximation to the system aggregate filter impulse response, and φ≐2π(ν−{circumflex over (ν)})LT is the frequency offset estimation error. Again the first term on the right of the approximately equals sign is the signal term and the second term is the noise term. It can be shown that the maximum likelihood estimate of the start of packet sample n=0 may be obtained by finding l=0, the value of l which maximises |Q_(l)| over the region of I for which X_(l) is positive.

[0311] In a practical implementation, where a matched filter correlation is computationally expensive as discussed below, a practical, near optimal method for identifying l=0 is as follows. A timing metric analogous to that of equation (9) is produced, for use in finding the matched filter output peak using a sequential search, by modifying the non-central correlation coefficient $\begin{matrix} \begin{matrix} {{\rho_{l}^{\prime}}\overset{.}{=}\frac{{\langle{n^{H}r_{l}}\rangle}}{\sqrt{{\langle{n^{H}n}\rangle}{\langle{r_{l}^{H}r_{l}}\rangle}}}} \\ {= \frac{Q_{l}}{\sqrt{L}S\sqrt{R_{l}}}} \end{matrix} & 14 \end{matrix}$

[0312] Since the received signal, r(t), is bandlimited, the ideal matched filter output peak is dispersed according to the system aggregate filter impulse response, approximated in equation (13) as the sinc function, see FIG. 6A. Depending on the instance of the time offset τ_(S), the amplitude of the matched filter (MF) output peak may be attenuated and the amplitude of non-peak MF output samples may be amplified compared with the ideal, non-bandlimited case, as is illustrated in FIG. 6A. This effect is most pronounced for τ_(S)→T/2, at which values of |Q_(l)| and |Q_(l+1)| are most similar. This means that if the time offset is T/2 (half a sample) then the amplitude of the output of the MF for values of |Q_(l)| and |Q_(l+1)| are very similar which leads to confusion as to which sample represents the start of the packet. One method of compensating for this effect, illustrated in FIG. 6B, is to replace the value |Q_(l)| in equation (14) with the sum |Q_(l)+Q_(l+1)|, thus $\begin{matrix} {{\rho_{l}^{''}} = \frac{{Q_{l} + Q_{l + 1}}}{\sqrt{L}S\sqrt{R_{l}}}} & 15 \end{matrix}$

[0313] which is efficiently evaluated as the difference

Y _(l) ≐|Q _(l) +Q _(l+1) |−T _(C2) {square root}{square root over (LS)}{square root}{square root over (R _(l))}  16

[0314] where T_(C2) is the threshold of correlation which, when exceeded, allows Y_(l) to become positive.

[0315] The threshold of correlation T_(C2) must be set at a level such that Y_(l) becomes positive when the start of packet occurs but it must also be low enough to always indicate the start of a packet, i.e. it must be low enough so that |Q_(l)+Q_(l+1)|>T_(C2){square root}{square root over (LS)}{square root}{square root over (R_(l))} (or the equivalent inequality for the particular metric used) when the start of packet occurs.

[0316] Upon Y_(l) becoming positive, the most likely value for l=0 is found by comparison of the amplitudes of |Q_(l)| and |Q_(l+1)|. Analysis of |Q_(l)+Q_(l+1)| differs little from that of |Q_(l)| due to the high (effectively 1.0) correlation between Q_(l) and Q_(l+1), thus $\begin{matrix} {{{Q_{l} + Q_{l + 1}}} \approx {{{LaS}^{2}\left\lbrack {{\sin \quad {c\left( {l - \frac{\tau_{s}}{T}} \right)}} + {\sin \quad {c\left( {l + 1 - \frac{\tau_{s}}{T}} \right)}}} \right\rbrack} + {\sqrt{L}S\sqrt{2}{\eta }}}} & 17 \end{matrix}$

[0317] may be used directly to establish the statistics of Y_(l).

[0318] As with packet detection, a less computationally expensive (but equivalent) DSP implementation of equation (16) is Y′_(l)=|Q_(l)+Q_(l+1)|²−T_(C2) ²LS²R_(l). To determine the start of the packet both the timing metric X_(l) determined before the frequency offset is estimate and the start of packet timing metric Y_(l) must be greater than zero. As can be seen from FIG. 3B the sliding window cross correlation P_(L) typically reaches the decision threshold before the matched filter correlation Q_(l). It can also be seen from this figure that the matched filter correlation is a better indicator of the start of the packet than the sliding window cross correlation. If timing metric X_(l) is not positive then the packet has not started. In this case the timing metric X_(l) is recalculated at the next sample and again checked. Once timing metric X_(l) is positive then timing metric Y_(l) is checked. If this timing metric is not positive then at the next sample timing metric X_(l) is rechecked and if this is positive timing metric Y_(l) is rechecked. Once timing metric Y_(l) is positive (and timing metric X_(l) is positive) l=0 and the start of packet is estimated from the current sample as

{circumflex over (n)}={circumflex over (l)}+2L−1|_({circumflex over (l)}=0)   18

[0319] The matched filter correlation is computationally expensive: for example a SHARC™ implementation required 285 instruction cycles per sample to calculate the correlation for L=64. At 40 MIPS and 1 MHz sample rate, this means that the correlation operated at about ⅛ of real-time. However, as this process only operated for a very small number of sample periods per packet, typically about ten, it is straight forward to buffer incoming samples, typically fewer than one hundred, over the period during which the matched filter is employed. The process has excellent localisibility, as illustrated in FIG. 3B, due to ideal PRBS autocorrelation properties. Furthermore, as the matched filter is a “clean” copy of the PRBS, there is no SNR penalty additional to that introduced by the channel and the transmitter and receiver RF sections.

[0320] After estimating the l=0 sample, the forward estimate of ν is updated by repeating equation (11) as shown in blocks 406 and 407 of FIG. 4. The updated estimate for l=0 has a reduced variance compared to the forward estimate for which the value of l was not established.

[0321]FIG. 7 shows an algorithm for estimating the phase offset. The first three steps for estimating the phase offset, blocks 701, 702 and 703, are the same as blocks 501, 502 and 503 for estimating the start of packet. In the final block, 704, the phase offset is estimated from the phase of the matched filter correlation peak.

[0322] Once the start of packet has been detected the phase of the matched filter correlation peak is used to estimate the phase offset as $\begin{matrix} {\hat{\theta}\overset{.}{=}{a\quad {\tan \left( \frac{{Im}\left\{ Q_{0} \right\}}{{Re}\left\{ Q_{0} \right\}} \right)}}} & 19 \end{matrix}$

[0323] which, by analogue with equation (11) is maximum likelihood.

[0324] Having estimated the start of packet, frequency offset and phase offset, n=0, ν and θ respectively, corrections to the impairments introduced by these parameters can be applied and the resulting data used to estimate the time offset τ_(S) using the process illustrated in FIG. 8A and the algorithm of FIG. 9. Firstly the accuracy of the start of the second sequence of the pilot symbol is determined to within half a data sample as shown in block 902. This can be achieved using the start of packet algorithm described previously. Corrections for the phase and frequency offsets are made to the received data in block 903. The sample time of the first sample of the second PRBS, or other constant envelope sequence, in the received pilot symbol is now known to an accuracy of half a symbol ±T/2, and the L length data vector corresponding to the second PRBS has as its mth value

r _(m) =as(mT−τ _(s))e ^(−j[2πν(mT−τ) ^(_(s)) ^()+θ])+η_(m)   20

[0325] where m ε[0 . . . L−1]. Applying corrections for the frequency and phase offset produces $\begin{matrix} {h_{m} = {{\left\lbrack {{{{as}\left( {{mT} - \tau_{s}} \right)}^{- {j{\lbrack{{2\pi \quad {v{({{mT} - \tau_{s}})}}} + \theta}\rbrack}}}} + \eta_{m}} \right\rbrack ^{- {j{\lbrack{{2\pi \quad \hat{v}\quad {mT}} + \hat{\theta}}\rbrack}}}}\quad = {{{{as}\left( {{mT} - \tau_{s}} \right)}^{- {j{\lbrack{{\varphi \frac{m}{L}} + \alpha - {2\pi \quad v\quad \tau_{s}}}\rbrack}}}} + \eta_{m}}}} & 21 \end{matrix}$

[0326] where φ is the frequency offset estimation error defined previously (with reference to equation (13)) and α≐{circumflex over (θ)}−θ is the phase offset estimation error.

[0327] Next an L point DFT is taken of the corrected data as shown in block 904. The kth of L frequency bins is $\begin{matrix} {H_{k} = {{a\quad ^{- {j{\lbrack{\alpha - {2\quad \pi \quad v\quad \tau_{s}}}\rbrack}}}{\sum\limits_{m = 0}^{L - 1}\quad {{s\left( {{mT} - \tau_{s}} \right)}^{{- j}{\frac{m}{L}{\lbrack{{2\pi \quad k} + \varphi}\rbrack}}}}}} + \eta_{k}}} & 22 \end{matrix}$

[0328] where η_(k) is additive white gaussian noise (AWGN) with variance L times that of η_(m). Since φ is a zero mean estimation error, then φ<<ν(<<1/T) and the result of equation (7) can be applied and simplified to obtain $\begin{matrix} {H_{k} \approx {{{La}\quad ^{- {j{\lbrack{\alpha - {2\quad \pi \quad v\quad \tau_{s}}}\rbrack}}}S_{k}^{{- {j2\pi}}\quad \frac{\tau_{s}k}{TL}}\sin \quad c\frac{\varphi}{2\pi}^{{- j}\frac{L - 1}{2L}\varphi}} + \eta_{k}}} & 23 \end{matrix}$

[0329] where S_(k) is the kth transmitted PRBS data symbol, and the assumption that the frequency offset estimation error φ→0 allows the inter-carrier interference term in equation (7) to be neglected. The data may be removed from H by forming the element by element vector product of the DFT result H_(k) and the PRBS data symbols S_(k) as described in block 905 of FIG. 9. $\begin{matrix} {{H_{k}S_{k}^{*}} = {{L\quad a{S}^{2}\sin \quad c\frac{\varphi}{\pi}^{- {j{\lbrack{{2\pi \frac{\tau_{s}}{T}\frac{k}{L}} + \alpha + {\frac{\varphi}{L}{(\frac{L - 1}{2})}} - {2\pi \quad v\quad \tau_{s}}}\rbrack}}}} + {S\quad \eta_{k}}}} & (24) \end{matrix}$

[0330] As can be seen from equation (24), estimation of the time offset s is the classical problem of estimating the frequency of a discrete complex sinusoid. In the classical problem, the maximum likelihood (ML) estimate is the frequency corresponding to the maximum amplitude bin of the DFT of the data. However, since equation (24) was obtained using the a priori knowledge of l=0, then the constraint −½≦τ_(S)≦½ may be applied to allow τ_(S) to be estimated as $\begin{matrix} {{\hat{\tau}}_{s} \doteq {\frac{L\quad T}{2\pi}\frac{{k^{T}\beta} - {\frac{1}{L}k^{T}o\quad o^{T}\beta}}{{k^{T}k} - {\frac{1}{L}\left( {k^{T}o} \right)^{2}}}}} & 25 \end{matrix}$

[0331] where β is a column vector of elements β_(k)=arg{H_(k)S_(k)*}, k=[0,1, . . . ,L−1]^(T), o=[1, . . . ,1]^(T). This estimate is simply the slope of a straight line and an example estimate is depicted in FIG. 8B. This estimate is both minimum mean square error (MMSE) and ML, and it may be shown that the Cramér-Rao Lower Bound (CRLB) for this estimate is identical to that of the ML estimate for the frequency of a continuous time complex sinusoid in AWGN. Note that the standard MMSE intercept estimate associated with equation (25) can be used to estimate the combined phase estimation error ${\hat{\alpha}}_{\in} \doteq {\alpha + {\frac{\varphi}{L}\left( \frac{L - 1}{2} \right)} - {2\pi \quad v\quad \tau_{s}}}$

[0332] Where the received signal is corrupted by frequency domain amplitude scaling and phase distortion, for example from transmit or receive filters or frequency-selective multipath fading, then the weighted MMSE estimate may be used in place of equation (25) to compensate for the distortions. Since |S|² known, {circumflex over (α)}_(k)≐|H_(k)S_(k)|, {circumflex over (φ)}_(k)≐arg(H_(k)S_(k)) may be used to estimate, respectively, the amplitude and phase of the kth frequency bin of a frequency domain equaliser. For the example system shown here the (frequency domain) phase distortion created by the system aggregate filter was corrected using the frequency domain pre-distortion equaliser, labelled EQ in FIG. 1A and where the filter coefficients were the residual phase after removal of the linear phase estimated using equation (25).

[0333] Having acquired initial estimates of n, ν, θ and τ_(S) as described above, standard techniques may be applied to track these parameters from OFDM data throughout the remainder of the packet. In the algorithms described above the order of some steps may vary without affecting the effectiveness of the algorithm. For example in the frequency offset estimation algorithm of FIG. 5 the order in which the autocorrelation and cross correlation are determined is not important.

[0334] An experimental example having key parameters as listed in Table 1 was used to produce the example data record showing estimation and tracking of channel parameters shown in FIG. 10. FIG. 10A shows frequency offset ν per OFDM block, with the estimate for block number one being the initial estimate based on the pilot symbol and algorithms discussed here: this estimates is highlighted by the circle. FIG. 10B shows the normalised symbol timing offset τ_(S)/T per OFDM block, again with the initial pilot-symbol based estimate highlighted by a circle. In both cases, the initial estimates can be seen to be consistent with the subsequent estimates which appear to be symmetrically distributed about the mean values. FIG. 10C shows the data constellation for the same OFDM packet which was BPSK modulated for clarity. This illustrates, firstly, the low SNR (estimated to be 10 dB) of the data shown by the spread of the constellation points and, secondly, that the constellation is not rotated or spread noticeably by channel impairments demonstrating the robustness of the practical implementation of the algorithms.

[0335] Using the experimental system, it has been found that the reliable detection and synchronisation using these techniques requires a minimum receiver SNR of 15 dB due to practical imperfections such as analogue filter frequency and phase distortion and non-linearities.

[0336] The fundamental analyses described below concentrate on AWGN channel performance, as this forms the basis of extension to more realistic fading channel models.

[0337] For the frequency, phase and time offset algorithms and the start of packet algorithm previously described to work a minimum signal to noise ration (SNR) is required. This SNR may be determined analytically and/or may be determined by simulation of the algorithms in a communications system.

[0338] Analysis of the system may also be used to provide indications of the performance of the system. For example it is important that the algorithms for the frequency offset and start of packet do not detect a start of packet where there is only noise present.

[0339] To determine the SNR required for reliable packet detection in the frequency offset estimation algorithm the mean and variance of the timing metric X_(l) need to be evaluated. These can be evaluated from the probability density function of the timing metric. As the timing metric is a function of the cross correlation and the autocorrelation of the received data the density functions of these variables also require evaluation. The value chosen for the threshold value T_(C1) also has an impact on the timing metric X_(l).

[0340] From equation (6), the cross correlation of the received data P_(l) is well-approximated as being non-central complex Gaussian, so the probability density function of the dummy variable x=|P_(l)| is $\begin{matrix} {{{p_{P}(x)} = {\frac{x}{\sigma_{P}^{2}}{\exp \left\lbrack {{- \frac{1}{2}}\left( \frac{x^{2} + \mu_{P}^{2}}{\sigma_{P}^{2}} \right)} \right\rbrack}{I_{0}\left( \frac{x\quad \mu_{P}}{\sigma_{P}^{2}} \right)}}},} & 26 \end{matrix}$

[0341] where

μ_(P)=(L−|l|)a ² S ²   27

[0342] is the mean and

σ_(P) ²=2σ_(w) ²[(L−|l|)a ² S ² +Lσ _(w) ²]  28

[0343] is the variance of the complex Gaussian P_(l), and I₀(·) is the modified Bessel function of the first kind. This is a Rice distribution in x.

[0344] From equation (8), the autocorrelation of the received data R_(l) is well-approximated as being non-central (real) Gaussian, so the probability density function of dummy variable y=T_(C1)|R_(l)| is $\begin{matrix} \begin{matrix} {{p_{\overset{.}{R}}(y)} = {\frac{1}{\sqrt{2\pi}\sigma_{R}}\left( {{\exp \left\lbrack {{- \frac{1}{2}}\left( \frac{y - \mu_{R}}{\sigma_{R}} \right)^{2}} \right\rbrack} + {\exp \left\lbrack {{- \frac{1}{2}}\left( \frac{y + \mu_{R}}{\sigma_{R}} \right)^{2}} \right\rbrack}} \right)}} \\ {{= {\frac{1}{\sqrt{2\pi}\sigma_{R}}{\exp \left\lbrack {{- \frac{1}{2}}\left( \frac{y^{2} + \mu_{R}^{2}}{\sigma_{R}^{2}} \right)} \right\rbrack}\left( {{\exp \left\lbrack \frac{y\quad \mu_{R}}{\sigma_{R}^{2}} \right\rbrack} + {\exp \left\lbrack {- \frac{y\quad \mu_{R}}{\sigma_{R}^{2}}} \right\rbrack}} \right)}},} \end{matrix} & 29 \end{matrix}$

[0345] Where

μ_(R) =T _(C1) L(a ² S ²+2σ_(w) ²)   30

[0346] is the scaled mean and

σ_(R) ² =T _(C1) ²4Lσ _(w) ²(a ² S ²+σ_(w) ²)   31

[0347] is the scaled variance of the Gaussian R_(l). This is the distribution of a random variable which is the absolute value of the normal distribution. Note that both the mean and variance of the probability density function of dummy variable y depend on the threshold value T_(C1).

[0348] Assuming that the cross correlation P_(l) and autocorrelation R_(l) are independent, the distribution of the timing metric X_(l) from equation (10) (X_(l=|P) _(l)|−T_(C1)R_(l)) may be shown to be $\begin{matrix} {{{p_{{1X}\quad}\left( {z > 0} \right)} = {{1 - {\int_{0}^{\infty}{\int_{0}^{\infty}{{p_{P}\quad(x)}{p_{R}\left( {x - z} \right)}{x}{z}}}}} = {1 - {\int_{0}^{\infty}{\frac{x}{2\sigma_{R}^{2}}{\exp \left( {- {\frac{1}{2}\left\lbrack \frac{x^{2} + \mu_{P}^{2}}{\sigma_{P}^{2}} \right\rbrack}} \right)}{{I_{0}\left( \frac{x\quad \mu_{P}}{\sigma_{P}^{2}} \right)}\left\lbrack {{{erfc}\left( \frac{x - \mu_{R}}{\sqrt{2}\sigma_{R}^{2}} \right)} + {{erfc}\left( \frac{x + \mu_{R}}{\sqrt{2}\sigma_{R}^{2}} \right)}} \right\rbrack}{x}}}}}},} & 32 \end{matrix}$

[0349] which may be integrated numerically.

[0350] However, it can be shown that at high SNRs R_(l) and |P_(l)| are correlated and the correlation coefficient between |P_(l)| and R_(l) is well approximated at high SNRs by $\begin{matrix} {{{\rho_{{P}R}\left( {l,\frac{a\quad S}{\sigma_{w}}} \right)} \approx \frac{1 + \frac{l}{L}}{\sqrt{\left( {2 + \frac{l}{L} + \frac{2\sigma_{w}^{2}}{a^{2}S^{2}}} \right)\left( {1 + \frac{\sigma_{w}^{2}}{a^{2}S^{2}}} \right)}}},} & 33 \end{matrix}$

[0351] which is inversely proportional to the mean signal-to-noise ratio per sample aS/σ_(w) and therefore may be approximated as zero only at very low signal-to-noise ratios. FIG. 11 shows excellent agreement between Monte Carlo simulation data and equation (33) for l=0 and SNRs above 0 dB. This means that for SNRs greater than 0 dB and at the start of the packet equation (33) accurately describes the correlation coefficient between the cross correlation |P_(l)| and the autocorrelation R_(l).

[0352] At high signal-to-noise ratios, the cross correlation |P_(l)| accurately may be approximated as Gaussian, and the distribution of timing metric X_(l) from equation (10), including correlation, may be approximated by using the bivariate Gaussian density of dummy values x and y from equations (26) and (29) to obtain $\begin{matrix} \begin{matrix} {{p_{{P}R}\left( {x,y} \right)} = {\frac{1}{2\pi_{\sigma_{P}\sigma_{R}}\sqrt{1 - \rho^{2}}}{\exp\left( {{- \frac{1}{2\left( {1 - \rho^{2}} \right)}}{\quad\left\lbrack {\left( \frac{x - \mu_{P}}{\sigma_{P}} \right)^{2} -} \right.}} \right.}}} \\ {\left. \left. {\frac{2{\rho \left( {x - \mu_{P}} \right)}\left( {y - \mu_{R}} \right)}{\sigma_{P}\sigma_{R}} + \left( \frac{y - \mu_{R}}{\sigma_{R}} \right)^{2}} \right\rbrack \right),} \end{matrix} & 34 \end{matrix}$

[0353] where ρ is the instance of correlation coefficient at the particular values of l and aS/σ_(w) as described by equation (33), to produce $\begin{matrix} {{p_{{2X}\quad}\left( {z > 0} \right)} = {{1 - {\int_{0}^{\infty}{\int_{0}^{\infty}{{p_{{P}R}\quad\left( {x,{x - z}} \right)}{x}{z}}}}} = {1 - {\frac{1}{2\sqrt{2\pi}\sigma_{P}}{\int_{0}^{\infty}{{\exp \left\lbrack {{- \frac{1}{2}}\left( \frac{x - \mu_{P}}{\sigma_{P}} \right)^{2}} \right\rbrack}{{erfc}\left\lbrack {\frac{1}{\sqrt{1 - \rho^{2}}}\left( {\frac{x - \mu_{R}}{\sqrt{2}\sigma_{R}} - {\rho \frac{x - \mu_{P}}{\sqrt{2}\sigma_{P}}}} \right)^{.}} \right\rbrack}{{x}.}}}}}}} & 35 \end{matrix}$

[0354] There are now two distributions for timing metric X_(l) (as described in equation 10), one distribution assuming that the cross correlation |P_(l)| and autocorrelation R_(l) are independent (equation 32) and one for high SNRs including a correlation coefficient between |P_(l| and R) _(l).

[0355] Empirically, it was found that the direct Gaussian approximation $\begin{matrix} {{{p_{{2X^{\prime}}\quad}\left( {z > 0} \right)} = {\frac{1}{2}{{erfc}\left( {- \frac{\mu_{X^{\prime}}}{\sqrt{2}\sigma_{X^{\prime}}}} \right)}}},} & 36 \end{matrix}$

[0356] Where $\begin{matrix} {\mu_{X}^{\prime} = {{\langle X_{l}^{\prime}\rangle}\quad = {{{\langle P_{l}^{2}\rangle} - {T_{C1}^{2}{\langle R_{l}^{2}\rangle}}}\quad = {\mu_{P}^{2} + {2\sigma_{P}^{2}} - \mu_{R}^{2} - \sigma_{R}^{2}}}}} & 37 \end{matrix}$

[0357] is the mean and $\begin{matrix} \begin{matrix} {\left( \sigma_{X}^{\prime} \right)^{2} = {{\langle\left( X_{l}^{\prime} \right)^{2}\rangle} - {\langle X_{l}^{\prime}\rangle}^{2}}} \\ {= {{{var}\left\{ P_{l}^{2} \right\}} + {T_{C1}^{4}{var}\left\{ R_{l}^{2} \right\}} - {2T_{C1}^{2}c\quad o\quad v\left\{ {P_{l}^{2}R_{l}^{2}} \right\}}}} \\ {= {{4{\sigma_{P}^{2}\left( {\mu_{P}^{2} + \sigma_{P}^{2}} \right)}} + {2{\sigma_{R}^{2}\left( {{2\mu_{R}^{2}} + \sigma_{R}^{2}} \right)}} -}} \\ {{4{\rho\sigma}_{P}\sigma_{R}\sqrt{\left( {\mu_{p}^{2} + \sigma_{p}^{2}} \right)\left( {\mu_{R}^{2} + \frac{\sigma_{R}^{2}}{2}} \right)}}} \end{matrix} & 38 \end{matrix}$

[0358] is the variance of dummy variable z=X′_(l)=P₁ ²−T_(C1) ²R_(l) ² is a better approximation of the timing metric at high SNR than p_(2X) (see equation 35).

[0359] A comparison of Kolmogorov-Smirnov (K-S) distance measures for goodness of fit of p_(1X), p_(2X) and p_(2X′), the three approximations of the distribution of timing metric X_(l), to Monte Carlo data is shown in FIG. 12. These results show that, by using equation (32) for SNRs below 0 dB and equation (36) for SNRs above 0 dB, a good approximation of the timing metric X_(l) can be made over most of the SNR range. Note that this allows the correlation coefficient between the cross correlation |P_(l)| and the autocorrelation RI to be treated as zero for SNRs below 0 dB in the region where the approximate expression of equation (33) shows poor accuracy. The approximation is worst at 0 dB, where about 500 samples of Monte Carlo data are required to cause the K-S test to fail. However for SNRs below −5 dB or above 5 dB, about 10,000 samples of Monte Carlo data are required to make the K-S test fail.

[0360]FIG. 13 depicts the mean (in FIG. 13A) and variance (in FIG. 13B) of timing metric X_(l) evaluated using the above expressions for a range of threshold values, showing that a received SNR of at least 10 dB is required before reliable packet detection occurs. FIGS. 14A and 14B depict the probability of packet detection using equations (32) and (36) as described above and FIG. 14C depicts the expected value of correlation coefficient |ρ_(l)|² as a function of offset from correlation peak l at received SNRs of 20 dB and 40 dB, respectively. These figures illustrate the range of values of l over which robust packet detection occurs for particular values of T_(c1) and the poor localisibility of the sliding-window correlation. For example FIGS. 14A and 14B shows that with the threshold value T_(C1) set to 0.5 there is a high probability that packet detection will occur within 15 samples either side of the actual start of packet. As can be seen from these figures as the threshold value T_(C1) increases the accuracy of the timing metric in determining the start of packet also increases. However when T_(C1) is set as 1 is it unlikely that the start of packet will be detected at all. In this case the cross correlation value does not exceed the autocorrelation value and the timing metric X_(l) does not become positive indicating the start of packet. FIGS. 14A and 14B illustrate the importance of the threshold value and choosing a threshold value that provides the most accurate indication of the start of a packet.

[0361]FIGS. 15A and 15B illustrate mean theoretical values of |P_(l)|², |R_(l)|² and |ρ_(l)|² in comparison with experimentally obtained results using the demonstration system for a received signal-to-noise ratio estimated to be 20 dB. The good agreement between theoretical and experimental data provides confidence, firstly, in the analysis and, secondly, in the practical implementation.

[0362] In a noise only system there is a possibility that the system will detect a start of packet where none exists. This is called the probability of false packet detection. Reducing the probability of false packet detection is important in a communications system.

[0363] In the absence of signal, i.e. in a noise only system, the approximate probability density function of the cross correlation of the received data x=|P_(l)| collapses to $\begin{matrix} {{{p_{P}(x)} = {\frac{x}{\sigma_{P}^{2}}{\exp \left( {{- \frac{1}{2}}\frac{x^{2}}{\sigma_{P}^{2}}} \right)}}},} & 39 \end{matrix}$

[0364] where σ_(P) ²≐2Lσ_(w) ⁴ and equation (39) is the Rayleigh distribution in x. The exact probability density function of the autocorrelation of the received data and the threshold value T_(C1)|R_(l)| is $\begin{matrix} {{{p_{R}(y)} = {\frac{1}{\sigma_{R}^{L}}\frac{y^{L - 1}}{\Gamma (L)}{\exp \left( {- \frac{y}{\sigma_{R}}} \right)}}},} & 40 \end{matrix}$

[0365] where σ_(R) ²≐4T_(C1) ²σ_(w) ⁴ and equation (40) is the gamma distribution with L degrees of freedom. Assuming that, in the noise only case, |P_(l)| and |R_(l)| are uncorrelated, the noise only distribution of the timing metric represented by dummy variable z=X_(l) can be represented as $\begin{matrix} {{{p_{{3X}\quad}\left( {z > 0} \right)} = {{\int_{0}^{\infty}{\int_{0}^{\infty}{{p_{P}\quad\left( {x + z} \right)}{p_{R}(x)}{x}{z}}}} = {{\left( \frac{\sigma_{P}}{\sigma_{R}} \right)^{L}{\exp \left\lbrack \left( \frac{\sigma_{P}}{2\sigma_{R}} \right)^{2} \right\rbrack}{D_{- L}\left( \frac{\sigma_{P}}{\sigma_{R}} \right)}} = {\left( \frac{L}{2_{T_{C1}^{2}}} \right)^{\frac{L}{2}}{\exp \left( \frac{L}{8_{T_{C1}^{2}}} \right)}{D_{- L}\left( \sqrt{\frac{L}{4_{T_{C1}^{2}}}} \right)}}}}},} & 41 \end{matrix}$

[0366] where D_(n)(·) is the parabolic cylinder function. This indicates that the probability of false packet detection can be reduced either by increasing the length of the pilot symbol 2L or by increasing the correlation threshold T_(C1).

[0367] It is important to know how changes in SNR and the accuracy of the estimate of the start of packet affect the frequency offset estimation algorithm. This can be determined from the probability density function of the frequency offset estimation error.

[0368] From equation (6) describing the cross correlation of the received data, it is relatively straight forward to show that the joint density of r≐|P₀| and φ≐arg{P₀}|_(ν=0)=2πLT(ν−{circumflex over (ν)}) is $\begin{matrix} {{{p_{r,\varphi}\left( {r,\varphi} \right)} = {\frac{r}{2\pi_{\sigma_{P}^{2}}}{\exp \left\lbrack {{- \frac{1}{2}}\left( \frac{r^{2} - {2\mu_{P}\cos \quad \varphi} - \mu_{P}^{2}}{\sigma_{P}^{2}} \right)} \right\rbrack}}},} & 42 \end{matrix}$

[0369] and thence that the probability density function of the frequency offset estimation error φ is $\begin{matrix} \begin{matrix} {{p_{\varphi}(\varphi)} = {{\frac{1}{2\pi}{\exp \left( {{- \frac{1}{2}}\frac{\mu_{P}^{2}}{\sigma_{P}^{2}}} \right)}} +}} \\ {{\frac{1}{2\sqrt{\pi}}\frac{\mu_{P}\cos \quad \varphi}{{\sqrt{2}}_{\sigma_{P}}}{\exp \left( {- \frac{\mu_{P}^{2}\sin^{2}\varphi}{2_{\sigma_{P}^{2}}}} \right)}{{{erfc}\left( {- \frac{\mu_{P}\cos \quad \varphi}{{\sqrt{2}}_{\sigma_{P}}}} \right)}.}}} \end{matrix} & 43 \end{matrix}$

[0370]FIG. 16 shows the accuracy of the frequency offset estimation error as a function of SNR per bit. FIG. 16A depicts the frequency offset estimation error variance <φ²>, noting that <φ>=0, produced by numerical integration of equation (43) in comparison with a Gaussian approximation p₁₀₀ (φ)≈μ_(p)/[(2π)^(1/2)σ_(p)]exp (−½[φμ_(p)/σ_(p)]²), and the linear approximation previously known. This illustrates that the Gaussian approximation is good at high SNRs. FIG. 16B depicts the density of φ at several values of SNR, showing that the accuracy of the frequency offset estimate becomes very good for high SNRs.

[0371]FIG. 17 shows the accuracy of the frequency offset estimation error as a function of l, offset from the sliding window correlation peak. Note that since equation (43) inherits dependence on SNR (aS/σ_(w) ²) and correlator offset l from the ratio μ_(p)/σ_(p) inspection of equations (26) and (27) indicates that the dependence of the frequency offset estimation error variance on (aS/σ_(w) ²) and l is independent. FIG. 17A shows that the variance of the frequency offset estimation error is more sensitive to SNR than it is to small values of l. This means that it is more important to have a higher start of packet estimator that estimates the start of packet to within 20 data samples of the actual start of packet. For example, the increase in frequency offset estimation error variance for a 5 dB decrease in SNR is approximately equal to an offset of l=40. FIG. 17B depicts percentage increase in frequency offset estimation error variance as a function of l at a given SNR, and it can be seen that the accuracy penalty for small values of l, up to 20 say, is relatively modest. This is important, as the matched filter described by equation (12) is computationally expensive to produce, and so the complex sample value P_(l) used to produce the forward estimate of the frequency offset ν for a given packet is the sample for which the sliding window detector (the timing metric) equation (9) first becomes positive. From FIG. 14C it can be seen that, for threshold value T_(C1) ²⁼0.8 and a SNR greater than 20 dB, the start of packet estimate will occur at approximately l=5 at which, referring to FIG. 17B, the accuracy penalty is about a 10% increase in frequency offset estimation error variance. This shows that the frequency offset estimation error increases as the SNR decreases and is more sensitive to SNR than to small error in the sample estimated as the start of packet.

[0372] To determine the SNR required for reliable packet detection in the packet detect algorithm the mean and variance of the timing metric Y_(l) need to be evaluated. These can be evaluated from the probability density function of the timing metric. As the timing metric is a function of the output of the matched filter and the autocorrelation of the received data the density functions of these variables also require evaluation. The value chosen for the threshold value T_(C2) also has an impact on the timing metric Y_(l).

[0373] From equation (13), the matched filter output Q_(l) is well-approximated as being non-central complex Gaussian, so the probability density function of dummy variable x=|Q|≐|Q_(l)+Q_(l+L)| is $\begin{matrix} {{{p_{Q}(x)} = {\frac{x}{\sigma_{Q}^{2}}{\exp\left\lbrack {{- \frac{1}{2}}\left( \frac{x^{2} + \mu_{Q}^{2}}{\sigma_{Q}^{2}} \right)} \right\rbrack}{I_{0}\left( \frac{x\quad \mu_{Q}}{\sigma_{Q}^{2}} \right)}}},} & 44 \end{matrix}$

[0374] Where $\begin{matrix} {{\mu_{Q} = {{LaS}^{2}\left\lbrack {{\sin \quad {c\left( {l - \frac{\tau_{s}}{T}} \right)}} + {\sin \quad {c\left( {l + 1 - \frac{\tau_{s}}{T}} \right)}}} \right\rbrack}},} & 45 \end{matrix}$

[0375] is the mean and

σ_(Q) ²=2S²Lσ_(w) ²,   46

[0376] is the variance, and I₀(·) is the modified Bessel function of the first kind. As with equation (26), this is a Rice distribution in x.

[0377] As described previously, the probability density function of the autocorrelation of the received data R_(l) is well-approximated as non-central Gaussian but, referring to equation (16) as required to evaluate the timing metric Y′_(l)≐|Q_(l)+Q_(l+1)|²−T_(C2) ²LS²R_(l), the scaled moments of T_(C2) ²LS²|R_(l)| become

μ_(R) =T _(C2) ² L ² S ²(a ² S ²+2σ_(w) ²)   47

[0378] for the scaled mean and

σ_(R) ² =T _(C2) ⁴4L ³ S ⁴σ_(w) ²(a ² S ²+σ_(w) ²)   48

[0379] for the scaled variance. Note that both the mean and variance of the scaled moments depend on the threshold value T_(C2).

[0380] Assuming that the matched filter output |Q|² and the autocorrelation of the received data R_(l) are uncorrelated, the distribution of the dummy variable z=Y′_(l)=|Q_(l)+Q_(l+1)|²−T_(C2) ²LS²R_(l) may be shown to be $\begin{matrix} \begin{matrix} {{p_{1Y^{\prime}}\left( {z > 0} \middle| {\tau \quad s} \right)} = {1 - {\int_{0}^{\infty}{\int_{0}^{\infty}{{p_{Q}\left( x^{2} \right)}{p_{R}\left( {x^{2} - z} \right)}{x^{2}}{z}}}}}} \\ {= {1 - {\int_{0}^{\infty}{\frac{1}{4\quad \sigma_{R}^{2}}{\exp \left( {- {\frac{1}{2}\left\lbrack \frac{x + \mu_{Q}^{2}}{\sigma_{Q}^{2}} \right\rbrack}} \right)}{I_{0}\left( \frac{\sqrt{x}\mu_{Q}}{\sigma_{Q}^{2}} \right)}}}}} \\ {{{\left\lbrack {{{erfc}\left( \frac{x - \mu_{R}}{\sqrt{2}\sigma_{R}^{2}} \right)} + {{erfc}\left( \frac{x + \mu_{R}}{\sqrt{2}\sigma_{R}^{2}} \right)}} \right\rbrack {x}},}} \end{matrix} & 49 \end{matrix}$

[0381] noting that this expression requires insertion of a particular value of τ_(S). To evaluate the distribution of Y′_(l) over the ensemble of τ_(S) (the marginal distribution), equation (49) is inserted into $\begin{matrix} \begin{matrix} {{p_{1Y^{\prime}}\left( {z > 0} \right)} = {\int_{\tau \quad s}^{\quad}{{p\left( {z > 0} \middle| {\tau \quad s} \right)}{p\left( {\tau \quad s} \right)}{\tau}\quad s}}} \\ {{= {\frac{1}{T}{\int_{- \frac{T}{2}}^{\frac{T}{2}}{{p\left( {z > 0} \middle| {\tau \quad s} \right)}{\tau}\quad s}}}},} \end{matrix} & 50 \end{matrix}$

[0382] which may be evaluated by numerical integration. As described previously, however, this expression is only valid for low values of SNR where |Q|² and R_(l) are uncorrelated.

[0383] It can be shown that at high SNRs the output of the matched filter |Q|² and the autocorrelation of the received data R_(l) are correlated and the correlation coefficient between |Q|² and R is well approximated at high SNRs by $\begin{matrix} {{{\rho_{{Q}R}\left( \frac{a\quad S}{\sigma_{w}} \right)} \approx \frac{1}{\sqrt{1 + \frac{\sigma_{w}^{2}}{a^{2}S^{2}}}}},} & 51 \end{matrix}$

[0384] which is inversely proportional to the mean signal-to-noise ratio per sample aS/σ_(w) and therefore may be approximated as zero only at very low signal-to-noise ratios. FIG. 18 shows excellent agreement between Monte Carlo simulation data and equation (51). This means that for high SNRs and at the start of the packet equation (51) accurately describes the correlation coefficient between the output of the matched filter |Q| and the autocorrelation of the received data R.

[0385] For high values of SNR, the matched filter output |Q| is well-approximated as non-central Gaussian, and the distribution of z=Y′_(l) may be produced from the bivariate Gaussian density to obtain $\begin{matrix} \begin{matrix} {{p_{2Y^{\prime}}\left( {z > 0} \middle| {\tau \quad s} \right)} = {1 - {\int_{0}^{\infty}{\int_{0}^{\infty}{{p_{{Q}R}\left( {x^{2},{x^{2} - z}} \right)}{x^{2}}{z}}}}}} \\ {= {1 - {\frac{1}{4\sqrt{2\quad \pi}\sigma_{Q}}{\int_{0}^{\infty}{\frac{1}{\sqrt{x}}{\exp \left\lbrack {{- \frac{1}{2}}\left( \frac{\sqrt{x} - \mu_{Q}}{\sigma_{Q}} \right)^{2}} \right\rbrack}}}}}} \\ {{{{{erfc}\left\lbrack {\frac{1}{\sqrt{1 - \rho^{2}}}\left( {\frac{x - \mu_{R}}{\sqrt{2}\sigma_{R}} - {\rho \frac{\sqrt{x} - \mu_{Q}}{\sqrt{2}\sigma_{Q}}}} \right)} \right\rbrack}{x}},}} \end{matrix} & 52 \end{matrix}$

[0386] where, as above, the marginal distribution may be evaluated using equation (50). Again, empirically, it was found that the direct Gaussian approximation $\begin{matrix} {{{p_{3Y^{\prime}}\left( {z > 0} \right)} = {\frac{1}{T}{\int_{- \frac{T}{2}}^{\frac{T}{2}}{\frac{1}{2}{{erfc}\left( {- \frac{\mu_{Y^{\prime}}}{\sqrt{2}\sigma_{Y^{\prime}}}} \right)}{\tau}\quad s}}}},} & 53 \end{matrix}$

[0387] Where $\begin{matrix} \begin{matrix} {\mu_{Y}^{\prime} = {\langle Y_{l}^{\prime}\rangle}} \\ {= {{\langle Q_{l}^{2}\rangle} - {T_{C2}^{2}{LS}^{2}{\langle R_{l}\rangle}}}} \\ {= {\mu_{Q}^{2} + {2\quad \sigma_{Q}^{2}} - {\sqrt{\frac{\pi}{2}}\sigma_{R}{\exp \left\lbrack {{- \frac{1}{2}}\left( \frac{\mu_{R}}{\sigma_{R}} \right)^{2}} \right\rbrack}{M\left( {\frac{3}{2},1,{\frac{1}{2}\left( \frac{\mu_{R}}{\sigma_{R}} \right)^{2}}} \right)}}}} \end{matrix} & 54 \end{matrix}$

[0388] where M(·) is Kummer's function, is the mean and $\begin{matrix} \begin{matrix} {{\left( \sigma_{Y}^{\prime} \right)^{2} = {{\langle\left( Y_{l}^{\prime} \right)^{2}\rangle} -}}{\langle Y_{l}^{\prime}\rangle}^{2}} \\ {= {{{var}\left\{ Q_{l}^{2} \right\}} + {T_{C2}^{4}L^{2}S^{4}\quad {var}\quad \left\{ R_{l} \right\}} - {2T_{C2}^{2}{LS}^{2}\quad {cov}\left\{ {Q_{l}^{2}R_{l}} \right\}}}} \\ {= {{4\quad {\sigma_{Q}^{2}\left( {\mu_{Q}^{2} + \sigma_{Q}^{2}} \right)}} + \left( {\mu_{R}^{2} + \sigma_{R}^{2}} \right) - \left( \mu_{Y}^{\prime} \right)^{2} -}} \\ {{4\quad \rho \quad \mu_{Q}\sqrt{\left( {\mu_{Q}^{2} + \sigma_{Q}^{2}} \right)\left( {\mu_{R}^{2} + \sigma_{R}^{2} - \left( \mu_{Y}^{\prime} \right)^{2}} \right)}}} \end{matrix} & 55 \end{matrix}$

[0389] is the variance of z=Y′_(l), was a better high signal-to-noise ratio approximation than p_(2Y′).

[0390] Three distributions for timing metric Y_(l) have now been developed. One of these distributions (described by equation 49) assumes that the output of the matched filter and the autocorrelation are uncorrelated and the other two distributions (described by equations 52 and 53) include a correlation coefficient between the output of the matched filter and the autocorrelation.

[0391] A comparison of Kolmogorov-Smirnov (K-S) distance measures for goodness of fit of p_(1Y′), p_(2Y′) and p_(3Y′) to Monte Carlo data is shown in FIG. 19. These results show that, by evaluating equation (50) based on equation (49) into for SNRs below −5 dB and equation (50) based on equation (52) for SNRs above −5 dB, a good approximation can be made over most of the SNR range. Note that this result allows the correlation coefficient to be treated as zero for SNRs below −5 dB in precisely the region where the approximate expression of equation (51) showed poor accuracy. Over the entire SNR range, about 500 samples of Monte Carlo data are required to make the K-S test fail. Note that these approximations to Y′_(l) are not as accurate as the analogous approximations to X_(l) due to the additional numerical inaccuracies incurred in evaluating equation (50). Note also that the K-S tests are more computationally expensive to evaluate to the same level of accuracy due to the double integration and the increase in dimension of the Monte Carlo data, thus the level confidence in these results is not as high as those for X_(l). These results show that the performance of the packet detect algorithm depends on the values set for the threshold values.

[0392]FIG. 20 depicts the probability of detection based on the start of packet estimation metric, |ρ_(l″)|², as a function of SNR, for T_(C2) ²=0.8. FIG. 20A depicts the distribution of Y′_(l) for six different instances of time offset τ_(S) and also depicts the distribution across the ensemble of τ_(S). This graphs shows that as the time offset increases to half a sample less SNR is required to accurately detect the start of a packet. FIG. 20B depicts the expected value of |ρ_(l″)|² for the same six instances of time offset τ_(S), and also the mean value across the ensemble of τ_(S). This shows that the time offset influences the expected value of the start of packet detection metric. It also shows that an SNR of greater than 10 dB is required to accurately detect the start of a packet.

[0393] In a noise only system there is a possibility that the system will detect a start of packet where none exists. This is called the probability of false packet detection. Reducing the probability of false packet detection (or increasing the mean time between failures) is important in a communications system.

[0394] In the absence of signal, the approximate probability density function of dummy variable x=|Q| collapses to $\begin{matrix} {{{p_{Q}(x)} = {\frac{x}{\sigma_{Q}^{2}}{\exp \left( {{- \frac{1}{2}}\frac{x^{2}}{\sigma_{Q}^{2}}} \right)}}},} & 56 \end{matrix}$

[0395] where σ_(Q) ²≐2^(1/2)S²Lσ_(w) ² and equation (56) is a Rayleigh distribution in x. The exact probability density function of dummy variable z=T_(C2)LS|R_(l)| is $\begin{matrix} {{{p_{R}(y)} = {\frac{1}{\sigma_{R}^{L}}\frac{y^{L - 1}}{\Gamma (L)}{\exp \left( {- \frac{y}{\sigma_{R}}} \right)}}},} & 57 \end{matrix}$

[0396] where σ_(R) ²≐T_(C2)S²Lσ_(w) ² and equation (57) describes the gamma distribution with L degrees of freedom. Assuming that, in the noise only case, the matched filter output |Q| and autocorrelation R_(l) are uncorrelated, the noise only distribution of the timing metric represented by dummy variable z=Y′_(l) can be shown to be $\begin{matrix} \begin{matrix} {{p_{3Y}\left( {z > 0} \right)} = {\int_{0}^{\infty}{\int_{0}^{\infty}{{p_{Q}\left( {x + z} \right)}{p_{R}(x)}{x}{z}}}}} \\ {= \left( \frac{1}{1 + \frac{\sigma_{R}^{2}}{\sigma_{Q}^{2}}} \right)^{L}} \\ {= {\left( \frac{1}{1 + T_{C2}} \right)^{L}.}} \end{matrix} & 58 \end{matrix}$

[0397] Combining the results previously described, the probability of correct packet detection, that is the correct identification of start of packet, can be calculated as $\begin{matrix} {p_{FD} = {p_{X}\left( {z > {0\left. {l = 0} \right){p_{Y}\left( {z > {0\left. {l = 0} \right){\prod\limits_{l = {- L}}^{- 1}\quad \left\lbrack {1 - {p_{X}\left( {{z > {0\left. l \right){p_{Y}\left( {z > {0\left. l \right)}} \right\rbrack}}},} \right.}} \right.}}} \right.}}} \right.}} & 59 \end{matrix}$

[0398] where p_(Y)(·) is calculated over the ensemble of τ_(S). The probability of false packet detection, that is incorrect identification of start of packet, can be approximated as $\begin{matrix} \begin{matrix} {p_{FF} \approx {\sum\limits_{l = {- L}}^{- l}\left\{ {p_{X}\left( {z > {0\left. l \right){p_{Y}\left( {z > {0\left. l \right){\prod\limits_{m = {- L}}^{l - l}\quad \left\lbrack {1 - {p_{X}\left( {z > {0\left. m \right){p_{Y}\left( {z > {0\left. m \right)}} \right\}}}} \right.}} \right.}}} \right.}}} \right.} \right.}} \\ {\approx {\sum\limits_{l = {- L}}^{- l}{p_{X}\left( {z > {0\left. l \right){p_{Y}\left( {{z > {0\left. l \right)}},} \right.}}} \right.}}} \end{matrix} & 60 \end{matrix}$

[0399] where the second approximation very closely approaches the first at high SNR, and noting that, strictly speaking, values for positive l also can cause false packet detection, conditioned on a failure to detect at l=0. In practice, however, this probability is data dependent and since, at high SNR, the probability of packet detection at l=0 is effectively 1.0, the probability of false packet detection is effectively the summation of (60).

[0400]FIG. 21A shows the probability of correct packet detection as a function of SNR for T_(C1) ²=0.6, 0.8 and T_(C2) ²=0.8. In particular, this result indicates that a SNR of at least 15 dB is required to ensure reliable packet detection at T_(C1)=T_(C2)=0.8. The composite performance of packet detection largely is determined by the threshold of the sliding window correlator (the crosscorrelator), since both inputs into the sliding window correlator include noise components whereas the matched filter is noise-free. A lower value of T_(C1) may be used to reduce the minimum required SNR. For example T_(C1) ²=0.6 reduces the minimum required SNR to about 10 dB as shown in FIG. 21A. However, as discussed previously, real-world effects such as receiver non-linearities and interference have significant impact on performance. Even with careful design, false packet detection may cause the receiver to go into an unknown state for some time and therefore the probability of this outcome should be minimised. By contrast, a packet not received due to missed detection will be re-transmitted by normal operation of the data link layer protocol. Thus it is more important to avoid false packet detection then to miss the start of a packet.

[0401] At low SNR, the probability of false packet detection approaches the noise-only probability of false detection, given by

p _(NO) =p _(3X)(z>0)p _(3Y)(z>0),   61

[0402] which, for T_(C1) ²=T_(C2) ²=0.8 is p_(NO)=5.7×10⁻²⁸ per sample. Since this is non-time-varying, then the failure rate density is p_(n)(n)=p_(NO)e^(−n p) ^(_(NO)) , and the mean time (number of samples) between false detections MTBFD is given by $\begin{matrix} \begin{matrix} {{MTBFD} = {{\langle n\rangle} = {\int_{0}^{\infty}{{np}_{n}(n)}}}} \\ {= \frac{1}{p_{NO}}} \end{matrix} & 62 \end{matrix}$

[0403] The probability of noise-only false detection is shown in FIG. 22A and the mean time between false detections is shown in FIG. 22B, both as a function of the combined threshold value T_(C) ²≐T_(C1) ²=T_(C2) ². In both FIGS. 22A and 22B, the results are broken down into the result for the sliding window correlation only, the result for the matched filter correlation only, and the composite system result. These results show that the probability of noise-only false detection mostly is set by the matched filter correlation and decreases as the combined threshold value increases. For the experimental system, the false detection probability was found to be significantly greater than that shown in FIG. 22 for an AWGN-only channel, the difference due to the real-world effects discussed above. The threshold values T_(C1) and T_(C2) may thus be chosen to reduce the probability of false packet detection while ensuring that the vast majority of packets are detected.

[0404] It is important to know how changes in SNR and the accuracy of the estimate of the start of packet affect the phase offset estimation algorithm. This can be determined from the probability density function of the phase offset estimation error.

[0405] From equation (13), and following the method previously described for frequency offset estimation, it is relatively straightforward to show that the probability density function of the phase offset estimation error α≐arg{Q₀}|_(θ=0)={circumflex over (θ)}−θ is $\begin{matrix} {p_{\alpha}\left( {{{\alpha \left. {\tau_{s},v,\varphi} \right)} = {{\frac{1}{2\pi}{\exp \left( {{- \frac{1}{2}}\frac{\mu_{Q}^{2}}{\sigma_{Q}^{2}}} \right)}} + {\frac{1}{2\sqrt{\pi}}\frac{\mu_{Q}\cos \quad \gamma}{\sqrt{2}\sigma_{Q}}{\exp \left( {- \frac{\mu_{Q}^{2}\sin^{2}\quad \gamma}{2\sigma_{Q}^{2}}} \right)}{{erfc}\left( {- \frac{\mu_{Q}\cos \quad \gamma}{\sqrt{2}\sigma_{Q}}} \right)}}}},} \right.} & 63 \end{matrix}$

[0406] where $\gamma \overset{.}{=}{\alpha - {2\pi \quad v_{\tau_{S}}} + {\varphi \frac{L - 1}{2L}}}$

[0407] for brevity and noting that μ_(Q) also is a function of the time offset τ_(S). This is the density of a conditioned on particular instances of τ_(S),ν and φ. The marginal density, across the ensemble of the time offset τ_(S), frequency offset ν and frequency offset estimation error φ, may be found as $\begin{matrix} {{p_{\alpha}(\alpha)} = {\int_{\tau \quad s}{\int_{v}{\int_{\varphi}{p_{\alpha}\left( {{\alpha \left. {\tau_{S},v,\varphi} \right){p\left( \tau_{S} \right)}{p(v)}{p(\varphi)}{\varphi}{v}{\tau_{S}}} = {\frac{1}{T\sqrt{2\pi}\sigma_{v}}{\int_{- \frac{T}{2}}^{\frac{T}{2}}{\int_{- \infty}^{\infty}{\int_{- \pi}^{\pi}{p_{\alpha}\left( {{\alpha \left. {{\tau_{S}v},\varphi} \right){p_{\varphi}(\varphi)}{\varphi}\quad {\exp \left( {- \frac{v^{2}}{2\sigma_{v}^{2}}} \right)}{v}{\tau_{S}}},} \right.}}}}}} \right.}}}}} & 64 \end{matrix}$

[0408] where the probability density function of the frequency offset estimation error, p₁₀₀(φ), is given by equation (43) and ν, the uncorrected frequency offset, is modelled as zero mean Gaussian with variance σ₈₄ ² across the ensemble of frequency offset. This expression can be evaluated using numerical integration

[0409]FIG. 23 shows the accuracy of the phase offset estimation error as a function of SNR. FIG. 23A depicts the phase offset estimation error variance <α²>, noting that <α>=0, produced by numerical integration of equation (64), for frequency offset variance σ_(ν)=3 kHz in comparison with the variance of the Gaussian approximation ${{p_{\alpha}(\alpha)} \approx {{\mu_{Q}^{\prime}/\left\lbrack {\left( {2\pi} \right)^{1/2}\sigma_{Q}} \right\rbrack}{\exp \left( {- {\frac{1}{2}\left\lbrack {\alpha \quad {\mu_{Q}^{\prime}/\sigma_{Q}}} \right\rbrack}^{2}} \right)}}},{{{where}\quad \mu_{Q}^{\prime}} = {2{LaS}^{2}{\int_{0}^{\frac{1}{2}T}{\sin \quad {c\left( {\tau_{S}/T} \right)}{{\quad \tau_{S}}.}}}}}$

[0410] This illustrates that the Gaussian approximation is reasonably accurate for SNRs between about 5 dB and 25 dB, but is not accurate in the main area of interest, that is at high SNR. This is due to the asymptotic variance floor from the ensemble of time offset τ_(S) and frequency offset ν. FIG. 23B depicts the marginal probability density function of the phase offset estimation error p_(α)(α) for a range of SNRs. This shows that, variance floor notwithstanding; the ensemble phase error becomes very small, much less than 0.1 radians, at high SNR.

[0411]FIG. 24 compares the marginal probability density function of the phase offset estimation error p_(α)(α) with conditional densities of time offset equal to half a data sample p_(α)(α|τ_(S)=T/2), frequency offset estimation error equal to 3 time the variance of the crosscorrelator p_(α)(α|φ=3σ_(P)), frequency offset equal to 3 times the variance of the frequency p_(α)(α|ν=3σ_(ν)), a worse case with the three above values p_(α)(α|τ_(S)=T/2,φ=3σ_(P),ν=3σ_(ν)) and a best case where all the offsets are zero p_(α)(α|τ_(S)=0,φ=0,ν=0), all at a SNR of 20 dB. In each of the first three cases, the conditional density is for the worst case value of the conditional parameter, and in the fourth case, the conditional density is for the worst case values of each of the three conditional parameters. The final conditional density is for the best case values of each of the three conditional parameters. It is important to recognise that, while the marginal density indicates the phase offset estimation error performance across the ensemble of parameter values, each pilot symbol is received with a particular sample value for each parameter. In a sense, each received packet has its own phase offset estimation error density, across an ensemble of AWGN, which is determined by the particular sample values of each parameter for that packet. The ensemble density to some extent indicates probability of occurrence of each set of parameter values.

[0412] The variance of the estimate of time offset τ_(S) given by equation (25) may be found by modifying a standard result for estimation of the frequency of an unknown complex sinusoid in complex AWGN to obtain $\begin{matrix} {{{var}\left\{ {\hat{\tau}}_{S} \right\}} \geq {\frac{3\sigma \quad w^{2}}{2\pi^{2}a^{2}{S^{2}\left( {L^{2} - 1} \right)}}.}} & 65 \end{matrix}$

[0413] For estimation in AWGN, the estimation error is zero mean and asymptotically Gaussian for large L, following the property of ML estimators, where the variance is given by the lower bound of equation (65).

[0414] It is anticipated that the majority of WLAN usage will be in line-of-sight or near line-of-sight channels. In this case, the (frequency non-selective) fading channel amplitude is well-modelled by the Rice probability density function (PDF) which, for a sufficiently large K-factor (line-of-sight to specular component ratio) produces near AWGN conditions.

[0415] For frequency non-selective multipath fading channels the system performance may be evaluated by defining the density of any system parameter (for example, frequency offset or timing offset) γ as p_(γ)(γ) and defining the density (for example, Rayleigh, Rice or Suzuki) of the (frequency non-selective) fading channel amplitude a as p_(a) (a). As a was assumed to be a constant in the preceding analysis, considering it here as a random variable implies that the marginal parameter densities p_(γ)(γ) presented in the preceding sections now must be considered as conditional parameter densities p_(γa)(γ|a) Then, applying Bayes' rule, the marginal density of γ for random a is

p _(γ)(γ)=∫₀ ^(∞) p _(γa)(γ|a)p _(a)(a)da.   66

[0416] As the majority of the parameter densities given here are complicated in AWGN, equation (66) typically will require evaluation using numerical integration.

[0417] For example, the density of τ_(s)≐{circumflex over (τ)}_(S)−τ_(S) in a Rayleigh fading channel is $\begin{matrix} \begin{matrix} {{p_{\tau_{s}}\left( \tau_{ɛ} \right)} = {\int_{0}^{\infty}{\frac{a}{\sqrt{2\quad \pi}\sigma_{\tau}}{\exp \left( {{- \frac{1}{2}}\frac{\tau_{ɛ}^{2}a^{2}}{\sigma_{\tau}^{2}}} \right)}\frac{a}{\sigma_{R}^{2}}\quad {\exp \left( {{- \frac{1}{2}}\frac{a^{2}}{\sigma_{R}^{2}}} \right)}{a}}}} \\ {{= \frac{\sigma_{\tau}^{2}\sigma_{R}}{2\left( {{\tau_{ɛ}^{2}\sigma_{R}^{2}} + \sigma_{\tau}^{2}} \right)^{3/2}}},} \end{matrix} & 67 \end{matrix}$

[0418] where σ_(τ) ²≐a² var{{circumflex over (τ)}_(S)} is the variance in the estimate of τ_(S) independent of a and σ_(R) ²≐½<a²> is the Rayleigh parameter. However, as other examples, the density of φ and α in a Rice fading channel require numerical integration of complicated expressions.

[0419] While the examples given here relate to an OFDM wireless communication system it should be appreciated that the method for assessing channel parameters can be applied to other wireless digital communications systems using a pilot symbol of the invention.

[0420] The foregoing describes the invention including a preferred form thereof. Alterations and modifications as will be obvious to those skilled in the art are intended to be incorporated within the scope hereof as defined in the accompanying claims. 

1. A method of detecting and synchronising packets of data with a repeated sequence as a pilot symbol received by a communications system including the steps of receiving data, detecting a packet within the received data, producing an estimate of the time-varying frequency offset of the received data, estimating the start of the packet of the received data, estimating the time-varying phase offset of the received data and estimating the time-varying time offset of the received data.
 2. A method of detecting and synchronising packets of data with a repeated sequence as claimed in claim 1 further including the step of estimating the time-varying frequency offset of the received data again after the packet start has been estimated.
 3. A method of detecting and synchronising packets of data with a repeated sequence as claimed in claim 1 or claim 2 further including the step of applying a correction to the received data based on the estimated frequency offset of the received data before the step of estimating the start of packet.
 4. A method for detecting and synchronising packets of data with a repeated sequence as claimed in any one of claims 1 to 3 further including the step of applying corrections based on the frequency and phase offsets to the received data before the step of estimating the time varying time offset.
 5. A method of determining the frequency offset of data including a pilot symbol including a repeated sequence including the steps of: receiving the data at a receiver as a series of data samples, producing an autocorrelation of a first vector of the received data, producing a cross correlation between the first vector of the received data and a second vector of the received data, determining a timing metric representing the approximate start of a data packet for the current data sample as a function of the autocorrelation, the cross correlation and a threshold value, assessing whether the timing metric is positive, if the timing metric is not positive returning to the step of producing an autocorrelation of a first vector of the received data, and if or when the timing metric is or becomes positive estimating the frequency offset from the phase of the cross correlation.
 6. A method of determining the frequency offset of data including a pilot symbol including a repeated sequence as claimed in claim 5 further including the steps of: determining the phase of the cross correlation of the first vector and the second vector once the start of a data packet has been detected, and estimating the frequency offset from the phase of the cross correlation.
 7. A method of determining the frequency offset of data including a pilot symbol including a repeated sequence as claimed in claim 5 or claim 6 wherein the pilot symbol includes at least two sequences with constant envelope in both the frequency and time domains.
 8. A method of determining the frequency offset of data including a pilot symbol including a repeated sequence as claimed in any one of claims 5 to 7 wherein the length of the vectors used to determine the autocorrelation and the cross correlation of the received data are the length of a constant envelope sequence in the pilot symbol.
 9. A method of determining the frequency offset of data including a pilot symbol including a repeated sequence as claimed in any one of claims 5 to 8 wherein the step of determining the timing metric includes determining the result of: |P_(l)|−T_(C1){square root}{square root over (R_(l)R_(l+L))}where P_(l) represents the cross correlation of the received data, T_(C1) represents the threshold value, R_(l) represents the autocorrelation of the received data beginning at sample l, and R_(l+L) represents the autocorrelation of the received data beginning at sample l+L.
 10. A method of determining the frequency offset of data including a pilot symbol including a repeated sequence as claimed in any one of claims 5 to 8 wherein the step of determining the timing metric includes determining the result of: |P_(l)|−T_(C1)max(R_(l)R_(l+L)) where P_(l) represents the cross correlation of the received data, T_(C1) represents the threshold value, max represents taking the maximum value of those in the brackets, R_(l) represents the autocorrelation of the received data beginning at sample l, and R_(l+L) represents the autocorrelation of the received data beginning at sample l+L.
 11. A method of determining the frequency offset of data including a pilot symbol including a repeated sequence as claimed in any one of claims 5 to 8 wherein the step of determining the timing metric includes determining the result of: |P_(l)|−T_(C1)R_(l) where P_(l) represents the cross correlation of the received data, T_(C1) represents the threshold value, and R_(l) represents the autocorrelation of the received data beginning at sample l.
 12. A method of determining the frequency offset of data including a pilot symbol including a repeated sequence as claimed in any one of claims 5 to 8 wherein the step of determining the timing metric includes determining the result of: |P_(l)|−T_(C1)R_(l+L) where P_(l) represents the cross correlation of the received data, T_(C1) represents the threshold value, and R_(l+L) represents the autocorrelation of the received data beginning at sample l+L.
 13. A method of determining the frequency offset of data including a pilot symbol including a repeated sequence as claimed in any one of claims 5 to 8 wherein the step of determining the timing metric includes determining the result of: P_(l) ²−T_(C1) ²R_(l) ² where P_(l) represents the cross correlation of the received data, T_(C1) represents the threshold value, and R_(l) represents the autocorrelation of the received data beginning at sample l.
 14. A method of determining the frequency offset of data including a pilot symbol including a repeated sequence as claimed in any one of claims 5 to 13 wherein the step of determining the frequency offset includes determining the result of: $\frac{1}{2\quad \pi \quad L\quad T}{\arctan \left( \frac{{Im}\left\{ P_{l} \right\}}{{Re}\left\{ P_{l} \right\}} \right)}$

where P_(l) represents the cross correlation of the received data, L represent the length of a constant envelope sequence in the pilot symbol, and T represents the period of a sample.
 15. A method of determining the start of a packet of data including a pilot symbol including a repeated sequence including the steps of: receiving the data at a receiver as a series of data samples, applying a correction based on an estimate of a frequency offset of the received data to a first vector of the received data to form a matched filter, producing an autocorrelation of the first vector of the received data, applying the matched filter to the received data to produce an output, determining a timing metric for the current sample of data as a function of the output of the matched filter, the autocorrelation of the first vector of the received data, the magnitude of the constant envelope of a sequence of the pilot symbol and a first threshold value, assessing whether the first timing metric is positive, if the first timing metric is not positive returning to the step of producing an autocorrelation at the first vector of the received data, and when the first tithing metric becomes positive estimating the start of packet from the current data sample.
 16. A method of determining the start of a packet of data including a pilot symbol including a repeated sequence as claimed in claim 15 wherein the pilot symbol includes at least two sequences with constant envelope in both the frequency and time domains.
 17. A method of determining the start of a packet of data including a pilot symbol including a repeated sequence as claimed in claim 15 or claim 16 wherein the length of the matched filter is equal to the length of a sequence within the pilot symbol.
 18. A method of determining the start of a packet of data including a pilot symbol including a repeated sequence as claimed in any one of claims 15 to 17 wherein the length of the vector used to produce the autocorrelation is equal to the length of a sequence within the pilot symbol.
 19. A method of determining the start of a packet of data including a pilot symbol including a repeated sequence as claimed in any one of claims 15 to 18 wherein the vector of data used to produce the autocorrelation and the vector of data used to produce the output of the matched filter are the same.
 20. A method of determining the start of a packet of data including a pilot symbol including a repeated sequence as claimed in any one of claims 15 to 19 further including the step of ensuring that a second timing metric is positive before estimating the start of the data packet.
 21. A method of determining the start of a packet of data including a pilot symbol including a repeated sequence as claimed in claim 20 wherein the second timing metric is a function of a second threshold value, the autocorrelation of the received data and a cross correlation between the first vector of data and a second vector of the received data.
 22. A method of determining the start of a packet of data including a pilot symbol including a repeated sequence as claimed in any one of claims 15 to 21 wherein the step of determining the first timing metric includes the step of determining the result of: |Q_(l)+Q_(l+1)|−T_(C2){square root}{square root over (LS)}{square root}{square root over (R_(l))}where Q_(l) represents the output of the matched filter for a vector of the received data starting at sample l, Q_(l+1) represents the output of the matched filter for a vector of the received data starting at sample l+1, T_(C2) represents the threshold value, L represents the length of a constant envelope sequence in the pilot symbol, S represents the per-sample magnitude of a constant envelope sequence in the pilot symbol, and R_(l) represents the autocorrelation of the first vector of the received data.
 23. A method of determining the start of a packet of data including a pilot symbol including a repeated sequence as claimed in any one of claims 15 to 21 wherein the step of determining the first timing metric includes the step of determining the result of: |Q_(l)+Q_(l+1)|²−T_(C2) ²LS²R_(l) where Q_(l) represents the output of the matched filter for a vector of the received data starting at sample l, Q_(l+1) represents the output of the matched filter for a vector of the received data staring at sample l+1, T_(C2) represents the threshold value, L represents the length of a constant envelope sequence in the pilot symbol, S represents the per-sample magnitude of a constant envelope sequence in the pilot symbol, and R_(l) represents the autocorrelation of the first vector of the received data.
 24. A method of determining the start of a packet of data including a pilot symbol including a repeated sequence as claimed in any one of claims 15 to 23 wherein the step of determining the start of packet includes the step of determining the result of: {circumflex over (l)}+2L−1|_({circumflex over (l)})=0 where {circumflex over (l)} represents the range of samples of the received data for which both the first and second timing metrics are positive.
 25. A method for estimating the phase offset of data including a pilot symbol including a repeated sequence including the steps of: receiving the data at a receiver as a series of data samples, applying a correction based on an estimate of a frequency offset of the data to a vector of received data to form a matched filter, applying the matched filter to the received data, determining the correlation peak of the matched filter, and estimating the phase offset from the phase of the correlation peak.
 26. A method for estimating the phase offset of data including a pilot symbol including a repeated sequence as claimed in claim 25 wherein the pilot symbol includes at least two sequences with constant envelope in both the frequency and time domains.
 27. A method for estimating the phase offset of data including a pilot symbol including a repeated sequence as claimed in claim 25 or claim 26 wherein the length of the data vector used to form the matched filter is equal to the length of a sequence in the pilot symbol.
 28. A method for estimating the phase offset of data including a pilot symbol including a repeated sequence as claimed in any one of claims 25 to 27 wherein the step of determining the phase offset includes the step of determining the result of: $\arctan \left( \frac{{Im}\left\{ Q_{0} \right\}}{{Re}\left\{ Q_{0} \right\}} \right)$

where arctan denotes the arctangent function, Im denotes the imagery part of the number in brackets, Re denotes the real part of the number in brackets, and Q₀ represents the matched filter correlation peak.
 29. A method of determining the timing offset of data including a pilot symbol including a repeated sequence including the steps of: receiving the data at a receiver as a series of data samples, determining the start of a second sequence within the pilot symbol of the received data to an accuracy of half a data sample, taking a discrete Fourier transform of a vector of the received data, forming a vector product of the output of the discrete Fourier transform and the data sample of the second sequence, and estimating the timing offset from the vector product.
 30. A method of determining the timing offset of data including a pilot symbol including a repeated sequence as claimed in claim 29 wherein the pilot symbol includes at least two sequences with constant envelope in both the frequency and time domains.
 31. A method of determining the timing offset of data including a pilot symbol including a repeated sequence as claimed in claim 29 or claim 30 further including the step of applying a frequency offset correction to the received data before the step of taking the discrete Fourier transform of the data.
 32. A method of determining the timing offset of data including a pilot symbol including a repeated sequence as claimed in any one of claims 29 to 31 further including the step of applying a phase offset correction to the received data before the step of taking the discrete Fourier transform of the data.
 33. A method of determining the timing offset of data including a pilot symbol including a repeated sequence as claimed in any one of claims 29 to 32 wherein the discrete Fourier transform is an L-point discrete Fourier transform where L represents the length of one constant envelope sequence in the pilot symbol.
 34. A method of determining the timing offset of data including a pilot symbol including a repeated sequence as claimed in any one of claims 29 to 33 wherein the step of determining the start of a second constant envelope sequence in the pilot symbol includes the steps of: producing an autocorrelation of a first vector of the received data, applying a correction based on an estimate of a frequency offset of the received data to the first vector of the received data to form a matched filter, applying the matched filter to the received data to produce an output, determining a timing metric for the current sample of data as a function of the output of the matched filter, the autocorrelation of the first vector of the received data, the magnitude of the constant envelope of a sequence of the pilot symbol and a first threshold value, assessing when the first timing metric becomes positive, and estimating the start of packet from the current data sample.
 35. A method of determining the timing offset of data including a pilot symbol including a repeated sequence as claimed in any one of claims 29 to 34 wherein the step of estimating the timing offset from the vector product includes the step of determining the result of: $\frac{L\quad T}{2\quad \pi}\frac{{k^{T}\beta} - {\frac{1}{L}k^{T}{oo}^{T}\beta}}{{k^{T}k} - {\frac{1}{L}\left( {k^{T}o} \right)^{2}}}$

where L represents the length of a constant envelope sequence in the pilot symbol, T represents the period of a sample, k represents a vector containing numbers 0 to L−1, β represents the argument of the vector product, and o represents an L-length vector of ones.
 36. A receiver for detecting and synchronising packets received by a communications system including: a front end arranged to receive data, a packet detect estimator arranged to detect a packet within the received data, a frequency offset estimator arranged to produce an estimate of the time-varying frequency offset of the received data, a start of packet estimator arranged to estimate the start of the packet of the received data, a phase offset estimator arranged to estimate the time-varying phase offset of the received data and a time offset estimator arranged to estimate the time-varying time offset of the received data.
 37. A receiver for detecting and synchronising packets received by a communications system as claimed in claim 36 wherein the frequency offset estimation means is further arranged to estimate the time-varying frequency offset of the received data again after the packet start has been estimated.
 38. A receiver for detecting and synchronising packets received by a communications system as claimed in claim 36 or 37 further including correction means arranged to apply a correction based on the estimated frequency offset to the received data before the start of packet estimation means estimates the start of packet.
 39. A receiver for detecting and synchronising packets received by a communications system as claimed in any one of claims 36 to 38 wherein the time offset estimation means is further arranged to apply corrections based on the frequency and phase offsets to the received data before estimating the time varying time offset.
 40. A frequency offset estimator arranged to determine the frequency offset of the received data including a pilot symbol including a repeated sequence including: first correlation means arranged to produce an autocorrelation of a first vector of the received data, second correlation means arranged to produce a cross correlation between the first vector of the received data and a second vector of the received data, and computation means arranged to determine a timing metric as a function of the autocorrelation, the cross correlation and a threshold value, assess when the timing metric becomes positive, and when the timing metric becomes positive estimate the frequency offset from the phase of the cross correlation.
 41. A frequency offset estimator as claimed in claim 40 wherein the calculation means is further arranged to: determine the phase of the cross correlation of the first vector and the second vector once the start of a data packet has been detected, and estimate the frequency offset from the phase of the cross correlation.
 42. A frequency offset estimator as claimed in claim 40 or claim 41 wherein the pilot symbol includes at least two sequences with constant envelope in both the frequency and time domains.
 43. A frequency offset estimator as claimed in any one of claims 40 to 42 wherein the length of the vectors used to determine the autocorrelation and the cross correlation of the received data are the same length as a sequence in the pilot symbol.
 44. A frequency offset estimator as claimed in any one of claims 40 to 43 wherein the computation means is arranged to assess the timing metric as: |P_(l)|−T_(C1){square root}{square root over (R_(l)R_(l+L))}where P_(l) represents the cross correlation of the received data, T_(C1) represents the threshold value, R_(l) represents the autocorrelation of the received data beginning at sample l, and R_(l+L) represents the autocorrelation of the received data beginning at sample l+L.
 45. A frequency offset estimator as claimed in any one of claims 40 to 43 wherein the computation means is arranged to assess the timing metric as: |P_(l)|−T_(C1)max(R_(l)R_(l+L)) where P_(l) represents the cross correlation of the received data, T_(C1) represents the threshold value, max represents taking the maximum value of those in the brackets, R_(l) represents the autocorrelation of the received data beginning at sample l, and R_(l+L) represents the autocorrelation of the received data beginning at sample l+L.
 46. A frequency offset estimator as claimed in any one of claims 40 to 43 wherein the computation means is arranged to assess the timing metric as: |P_(l)|−T_(C1)R_(l) where P_(l) represents the cross correlation of the received data, T_(C1) represents the threshold value, and R_(l) represents the autocorrelation of the received data beginning at sample l.
 47. A frequency offset estimator as claimed in any one of claims 40 to 43 wherein the computation means is arranged to assess the liming metric as: |P_(l)|−T_(C1)R_(l+L) where P_(l) represents the cross correlation of the received data, T_(C1) represents the threshold value, and R_(l+L) represents the autocorrelation of the received data beginning at sample l+L.
 48. A frequency offset estimator as claimed in any one of claims 40 to 43 wherein the computation means is arranged to assess the timing metric as: P_(l) ²−T_(C1) ²R_(l) ² where P_(l) represents the cross correlation of the received data, T_(C1) represents the threshold value, and R_(l) represents the autocorrelation of the received data beginning at sample l.
 49. A frequency offset estimator as claimed in any one of claims 40 to 48 wherein the computation means is further arranged to estimate the frequency offset as: $\frac{1}{2\quad \pi \quad L\quad T}{\arctan \left( \frac{{Im}\left\{ P_{l} \right\}}{{Re}\left\{ P_{l} \right\}} \right)}$

where P_(l) represents the cross correlation of the received data, L represent the length of a constant envelope sequence in the pilot symbol, and T represents the period of a sample.
 50. A start of packet estimator arranged to estimate the start of a packet of a series of samples of data including a pilot symbol including a repeated sequence including: correlator means arranged to produce an autocorrelation of a first vector of the received data, matched filter forming means arranged to apply a correction based on an estimate of a frequency offset of the received data to the first vector of the received data to form a matched filter, matched filter means arranged to apply the matched filter to the received data to produce an output, and computation means arranged to determine a timing metric for the current sample of data as a function of the output of the matched filter, the autocorrelation of the first vector of the received data, the magnitude of the constant envelope of a sequence within the pilot symbol and a first threshold value, assess when the first timing metric becomes positive, and estimate the start of packet from the current data sample.
 51. A start of packet estimator as claimed in claim 50 wherein the length of the matched filter is equal to the length of a constant envelope sequence within the pilot symbol.
 52. A start of packet estimator as claimed in claim 50 or claim 51 wherein the length of the vector used to produce the autocorrelation is equal to the length of a constant envelope sequence within the pilot symbol.
 53. A start of packet estimator as claimed in any one of claims 50 to 52 wherein the vector of data used to produce the autocorrelation and the vector of data used to produce the output of the matched filter are the same.
 54. A start of packet estimator as claimed in any one of claims 50 to 53 wherein the computation means is further arranged to ensure that a second timing metric is positive before estimating the start of the data packet.
 55. A start of packet estimator as claimed in claim 54 wherein the second timing metric is a function of a second threshold value, the autocorrelation of the received data and a cross correlation between the first vector of data and a second vector of the received data.
 56. A start of packet estimator as claimed in any one of claims 50 to 55 wherein the computation means is arranged to assess the timing metric as: |Q_(l)+Q_(l+1)|−T_(C2){square root}{square root over (LS)}{square root}{square root over (R_(l))}where Q_(l) represents the output of the matched filter for a vector of the received data starting at sample l, Q_(l+1) represents the output of the matched filter for a vector of the received data starting at sample l+1, T_(C2) represents the threshold value, L represents the length of a constant envelope sequence in the pilot symbol, S represents the per-sample magnitude of a constant envelope sequence in the pilot symbol, and R_(l) represents the autocorrelation of the first vector of the received data.
 57. A start of packet estimator as claimed in any one of claims 50 to 55 wherein the computation means is arranged to assess the timing metric as: |Q_(l)+Q_(l+1)|²−T_(C2) ²LS²R_(l) where Q_(l) represents the output of the matched filter for a vector of the received data starting at sample l, Q_(l+1) represents the output of the matched filter for a vector of the received data starting at sample l+1, T_(C2) represents the threshold value, L represents the length of a constant envelope sequence in the pilot symbol, S represents the per-sample magnitude of a constant envelope sequence in the pilot symbol, and R_(l) represents the autocorrelation of the first vector of the received data.
 58. A start of packet estimator as claimed in any one of claims 50 to 57 wherein the computation means is arranged to assess the start of packet as: {circumflex over (l)}+2L−1|{circumflex over (l)}=0 where {circumflex over (l)} represents the range of samples of the received data for which both the first and second timing metrics are positive.
 59. A phase offset estimator arranged to estimate the phase offset of data including a pilot symbol including a repeated sequence including: computation means arranged to apply a correction based on an estimate of a frequency offset of the data to a vector of received data to form a matched filter, a matched filter arranged to filter to the received data, and the computation means further arranged to determine the correlation peak of the matched filter, and estimate the phase offset from the phase of the correlation peak.
 60. A phase offset estimator as claimed in claim 59 wherein the length of the data vector used to form the matched filter is equal to the length of a sequence in the pilot symbol.
 61. A phase offset estimator as claimed in claim 59 or claim 60 wherein the computation means is further arranged to estimate the phase offset as: $\arctan \left( \frac{{Im}\left\{ Q_{0} \right\}}{{Re}\left\{ Q_{0} \right\}} \right)$

where arctan denotes the arctangent function, Im denotes the imagery part of the number in brackets, Re denotes the real part of the number in brackets, and Q₀ represents the matched filter correlation peak.
 62. A timing offset estimator arranged to estimate the timing offset of a received series of samples of data including a pilot symbol including a repeated sequence including: computation means arranged to determine the start of a second sequence within the pilot symbol of the received data to an accuracy of half a data sample, Fourier transform means arranged to perform a discrete Fourier transform on a vector of the received data, and the computation means further arranged to form a vector product of the output of the discrete Fourier transform and the data sample of the second constant envelope sequence, and estimate the timing offset from the vector product.
 63. A timing offset estimator as claimed in claim 62 wherein the computation means is further arranged to apply a frequency offset correction to the received data before the Fourier transform means takes the discrete Fourier transform of the data.
 64. A timing offset estimator as claimed in claim 62 or claim 63 wherein the computation means is further arranged to apply a phase offset correction to the received data before the Fourier transform means takes the discrete Fourier transform of the data.
 65. A timing offset estimator as claimed in any one of claims 62 to 64 wherein the discrete Fourier transform is an L-point discrete Fourier transform where L represents the length of a sequence in the pilot symbol.
 66. A timing offset estimator as claimed in any one of claims 62 to 65 wherein the computation means is further arranged to determine the start of a second sequence in the pilot symbol by: producing an autocorrelation of a first vector of the received data, applying a correction based on an estimate of a frequency offset of the received data to the first vector of the received data to form a matched filter, applying the matched filter to the received data to produce an output, determining a timing metric for the current sample of data as a function of the output of the matched filter, the autocorrelation of the first vector of the received data, the magnitude of the constant envelope of a sequence of the pilot symbol and a first threshold value, assessing when the first timing metric becomes positive, and when the first timing metric becomes positive estimating the start of packet from the current data sample.
 67. A timing offset estimator as claimed in any one of claims 62 to 66 wherein the computation means is further arranged to estimate the timing offset from the vector product by determining the result of: $\frac{L\quad T}{2\quad \pi}\frac{{k^{T}\beta} - {\frac{1}{L}k^{T}{oo}^{T}\beta}}{{k^{T}k} - {\frac{1}{L}\left( {k^{T}o} \right)^{2}}}$

where L represents the length of a constant envelope sequence in the pilot symbol, T represents the period of a sample, k represents a vector containing numbers 0 to L−1, β represents the argument of the vector product, and o represents an L-length vector of ones. 